use *;
use Derivative;
use new;
/// `Push`es each `State` onto the Amethyst state stack in reverse order (LIFO).
///
/// This implementation does not override the `Trans`ition returned by the `State` that is pushed
/// to. Furthermore, it always transitions to the next state in the stack, which means there is no
/// "opt-out" of going through the stack.