pub trait GlobalDomain: Domain {
type GlobalState: Debug + Sized + 'static;
// Required methods
fn derive_local_state(
global_state: &Self::GlobalState,
agent: AgentId,
) -> Self::State;
fn apply(
global_state: &mut Self::GlobalState,
local_state: &Self::State,
diff: &Self::Diff,
);
}Expand description
A domain that provides a global state, out of which a local state for the planning can be derived.
Required Associated Types§
Sourcetype GlobalState: Debug + Sized + 'static
type GlobalState: Debug + Sized + 'static
Global state: all data that can change in the course of the simulation.
Required Methods§
Sourcefn derive_local_state(
global_state: &Self::GlobalState,
agent: AgentId,
) -> Self::State
fn derive_local_state( global_state: &Self::GlobalState, agent: AgentId, ) -> Self::State
Derives a new local state for the given agent from the given global state.
Sourcefn apply(
global_state: &mut Self::GlobalState,
local_state: &Self::State,
diff: &Self::Diff,
)
fn apply( global_state: &mut Self::GlobalState, local_state: &Self::State, diff: &Self::Diff, )
Applies a diff from a local state to the global state.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".