pub trait TreeExecutorTrait {
type SeqExecutor: Executor<Seq>;
type ConcExecutor: Executor<Conc>;
type MoveToExecutor: Executor<MoveTo>;
type SearchAreaExecutor: Executor<SearchArea>;
// Required methods
fn from_agent<TAgent>(agent: &TAgent) -> Self
where Self::SeqExecutor: CreatableFromAgent<TAgent, Self::SeqExecutor>,
Self::ConcExecutor: CreatableFromAgent<TAgent, Self::ConcExecutor>,
Self::MoveToExecutor: CreatableFromAgent<TAgent, Self::MoveToExecutor>,
Self::SearchAreaExecutor: CreatableFromAgent<TAgent, Self::SearchAreaExecutor>;
fn execute(&self, t: Node) -> ExecutionResult<'_>;
}
Expand description
Base trait for the TreeExecutor
Required Associated Types§
Sourcetype SeqExecutor: Executor<Seq>
type SeqExecutor: Executor<Seq>
Executor for sequential nodes
Sourcetype ConcExecutor: Executor<Conc>
type ConcExecutor: Executor<Conc>
Executor for concurrent nodes
Sourcetype MoveToExecutor: Executor<MoveTo>
type MoveToExecutor: Executor<MoveTo>
Executor for move_to nodes
Sourcetype SearchAreaExecutor: Executor<SearchArea>
type SearchAreaExecutor: Executor<SearchArea>
Executor for search area nodes
Required Methods§
Sourcefn from_agent<TAgent>(agent: &TAgent) -> Selfwhere
Self::SeqExecutor: CreatableFromAgent<TAgent, Self::SeqExecutor>,
Self::ConcExecutor: CreatableFromAgent<TAgent, Self::ConcExecutor>,
Self::MoveToExecutor: CreatableFromAgent<TAgent, Self::MoveToExecutor>,
Self::SearchAreaExecutor: CreatableFromAgent<TAgent, Self::SearchAreaExecutor>,
fn from_agent<TAgent>(agent: &TAgent) -> Selfwhere
Self::SeqExecutor: CreatableFromAgent<TAgent, Self::SeqExecutor>,
Self::ConcExecutor: CreatableFromAgent<TAgent, Self::ConcExecutor>,
Self::MoveToExecutor: CreatableFromAgent<TAgent, Self::MoveToExecutor>,
Self::SearchAreaExecutor: CreatableFromAgent<TAgent, Self::SearchAreaExecutor>,
Create a new executor for the given agent
Sourcefn execute(&self, t: Node) -> ExecutionResult<'_>
fn execute(&self, t: Node) -> ExecutionResult<'_>
Execute the tst
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.