dart_fsm 1.2.0 copy "dart_fsm: ^1.2.0" to clipboard
dart_fsm: ^1.2.0 copied to clipboard

A package for implementing finite state machines in Dart.

example/dart_fsm_example.dart

// Copyright (c) 2024, teamLab inc.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:dart_fsm/dart_fsm.dart';

// State
sealed class SampleState {
  const SampleState();
}

final class SampleStateA extends SampleState {
  const SampleStateA();
}

final class SampleStateB extends SampleState {
  const SampleStateB();
}

// Action
sealed class SampleAction {
  const SampleAction();
}

final class SampleActionA extends SampleAction {
  const SampleActionA();
}

void main() {
  final stateMachineGraph = GraphBuilder<SampleState, SampleAction>()
    ..state<SampleStateA>(
      (b) => b
        ..on<SampleActionA>(
          (state, action) => b.transitionTo(const SampleStateB()),
        ),
    );

  final stateMachine = createStateMachine(
    initialState: const SampleStateA(),
    graphBuilder: stateMachineGraph,
  );

  print(stateMachine.state); // SampleStateA

  stateMachine.dispatch(const SampleActionA());

  print(stateMachine.state); // SampleStateB
}
5
likes
0
points
7.3k
downloads

Publisher

unverified uploader

Weekly Downloads

A package for implementing finite state machines in Dart.

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

collection, meta, test

More

Packages that depend on dart_fsm