pub mod error;
mod seed;
pub use seed::Seed;
pub mod signal;
mod snapshot;
pub(crate) use snapshot::Snapshot;
use std::marker::PhantomData;
use derive_where::derive_where;
#[allow(missing_docs)]
pub trait Common: crate::sealed::Sealed + Sized {
type State;
type Action;
type Root;
type Interaction;
type GameOutcome;
}
#[doc(hidden)]
pub type CommonImpl<Interaction, GameOutcome> = Impl<
<Interaction as crate::Interaction>::State,
<Interaction as crate::Interaction>::Action,
<Interaction as crate::Interaction>::Root,
Interaction,
GameOutcome,
>;
#[doc(hidden)]
#[derive_where(Debug)]
pub struct Impl<State, Action, Root, Interaction, GameOutcome> {
_p: PhantomData<fn() -> (State, Action, Root, Interaction, GameOutcome)>,
}
impl<State, Action, Root, Interaction, GameOutcome> crate::sealed::Sealed
for Impl<State, Action, Root, Interaction, GameOutcome>
{
}
impl<State, Action, Root, Interaction, GameOutcome> Common
for Impl<State, Action, Root, Interaction, GameOutcome>
{
type State = State;
type Action = Action;
type Root = Root;
type Interaction = Interaction;
type GameOutcome = GameOutcome;
}
pub(crate) type SeqId = i32;