Crate extfsm [−] [src]
Implementation of a generic final state machine with extended state. Features worth mentioning:
- optional exit/enter transitions on states
- each event instance can provide boxed arguments to transiton closure
- each transition closure can return with vector of arguments that are queued at the end of outstanding events queue
- can generate dot represenation of itself
Author
Tony Przygienda, 2016
Examples
Check out the tests in the implementation for a good example of use
Panics
Never
Errors
refer to Errors
Copyrights
Copyright (c) 2017, Juniper Networks, Inc. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. This code is not an official Juniper product. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Structs
FSM |
Final state machine type |
TransitionSource |
describes a transition origination point |
TransitionTarget |
implements the target of a transition upon an event |
Enums
EntryExit |
types of transitions on states |
Errors |
Errors that can occur when running FSMs |
Traits
RunsFSM |
trait that can process events from a queue using a transition table |
Type Definitions
EntryExitTransitionFn |
transition function to either enter or exit a specific state, return same as
|
EventQueue |
set of events to execute with according optional argument on call of transition function |
OptionalFnArg |
type representing an optional argument to a transition function call |
TransitionFn |
transition function used, takes optional argument and returns either with error or an optional set of events to be added to processing (at the end of event queue) |
TransitionResult |
type to be returned by all transitions an optional queue of events to be added to the FSM or an error is returned |