event<T> function

AtomicProposition<T> event<T>(
  1. bool predicate(
    1. T stateOrEvent
    ), {
  2. String? name,
})

Creates an atomic proposition Formula based on an event predicate.

This is functionally identical to state but can improve readability by signaling that the predicate relates to an event occurring at this state/time, rather than a condition holding over a state. Both create an AtomicProposition. Example: event<MyEvents>((e) => e == MyEvents.buttonClicked)

Implementation

AtomicProposition<T> event<T>(bool Function(T stateOrEvent) predicate,
    {String? name}) {
  // Semantically, an event check is just a state check at a specific time.
  return AtomicProposition<T>(predicate, name: name);
}