state machine

You probably know the theory. In this docs when we refer to state machine we refer to a type (most of the time the enum) that implements some trait designed according to the rules below. There is some introductory article about why state machines are designed that way.

State machine implements at least abstract rotor::Machine trait. But there are also more state machine traits that are more concrete.

Rules: TBD

child state machine

Often one state machine calls an action from another state machine. The one that calls actions is a parent. The one that receives actions is called child. The parent state machine usually also owns the child state machine (means that when parent is shut down, the all the children too).

There might be multiple child state machines when the protocol allows multiple underlying requests/substreams/whatever to be mixed and used simultaneously

parent state machine
See child state machine