transition method

Transition<STATE, EVENT, SIDE_EFFECT> transition(
  1. EVENT event
)

Perform transition by emitting event.

Implementation

Transition<STATE, EVENT, SIDE_EFFECT> transition(EVENT event) {
  final fromState = _currentState;
  final transition = _getTransition(fromState, event);
  transition.match((v) {
    var onStateExit = _getOnStateExit(fromState);
    onStateExit?.call(fromState);
    _currentState = v.toState;
    var onStateEnter = _getOnStateEnter(v.toState);
    onStateEnter?.call(v.toState);
    _controller.add(_currentState);
    for (TransitionListener<STATE, EVENT, SIDE_EFFECT> onTransition
        in _graph.onTransitionListeners) {
      onTransition(transition);
    }
  }, ignore);
  return transition;
}