pub struct Parallel { /* private fields */ }Expand description
A Parallel behaviors executes its children concurrently in one thread.
It differs from ParallelAll in how it handles the parallelity:
The standard variant is completed either when the success_threshold or the failure_threshold is reached.
These are configured using the ports success_count and failure_count.
If any of the thresholds is reached, still running children will be halted.
Both ports default to -1 which means any number or don’t care.
The variant is gated behind the feature parallel.
Example:
<Parallel success_count="2" failure_count="1">
<Behavior1/>
<Behavior2/>
<Behavior3/>
</Parallel>Implementations§
Trait Implementations§
Source§impl Behavior for Parallel
impl Behavior for Parallel
Source§fn on_halt(&mut self) -> Result<(), Error>
fn on_halt(&mut self) -> Result<(), Error>
Method called during stop/cancel/halt of a behavior,
intended to reset the internal fields of your behavior. Read more
Source§fn on_start(
&mut self,
behavior: &mut BehaviorData,
children: &mut BehaviorTreeElementList,
_runtime: &SharedRuntime,
) -> Result<(), Error>
fn on_start( &mut self, behavior: &mut BehaviorData, children: &mut BehaviorTreeElementList, _runtime: &SharedRuntime, ) -> Result<(), Error>
Method is called before starting to tick a behavior,
intended to do preliminary stuff for your behavior. Read more
Source§fn tick<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 mut self,
_behavior: &'life1 mut BehaviorData,
children: &'life2 mut BehaviorTreeElementList,
runtime: &'life3 SharedRuntime,
) -> Pin<Box<dyn Future<Output = BehaviorResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn tick<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 mut self,
_behavior: &'life1 mut BehaviorData,
children: &'life2 mut BehaviorTreeElementList,
runtime: &'life3 SharedRuntime,
) -> Pin<Box<dyn Future<Output = BehaviorResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Method to tick a behavior. Read more
Source§fn start<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 mut self,
behavior: &'life1 mut BehaviorData,
children: &'life2 mut BehaviorTreeElementList,
runtime: &'life3 SharedRuntime,
) -> Pin<Box<dyn Future<Output = BehaviorResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn start<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 mut self,
behavior: &'life1 mut BehaviorData,
children: &'life2 mut BehaviorTreeElementList,
runtime: &'life3 SharedRuntime,
) -> Pin<Box<dyn Future<Output = BehaviorResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Method is called on first tick of a behavior instead of
tick().
If this method returns BehaviorState::Running, the
behavior becomes asynchronous. Read moreSource§fn halt(
&mut self,
_behavior: &mut BehaviorData,
children: &mut BehaviorTreeElementList,
runtime: &SharedRuntime,
) -> BehaviorResult
fn halt( &mut self, _behavior: &mut BehaviorData, children: &mut BehaviorTreeElementList, runtime: &SharedRuntime, ) -> BehaviorResult
Method to halt a behavior. Read more
Source§impl BehaviorExecution for Parallel
impl BehaviorExecution for Parallel
Source§fn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
Mutable dynamic downcasting.
Source§fn kind(&self) -> BehaviorKind
fn kind(&self) -> BehaviorKind
Get the
BehaviorKind of the behavior.Source§fn portlist_mut(&mut self) -> &mut dyn PortList
fn portlist_mut(&mut self) -> &mut dyn PortList
Access the
PortListSource§impl PortCollectionProvider for Parallel
impl PortCollectionProvider for Parallel
Source§fn provided_ports(&self) -> &impl PortCollectionAccessors
fn provided_ports(&self) -> &impl PortCollectionAccessors
Returns immutable access to the collections entries.
Source§fn provided_ports_mut(&mut self) -> &mut impl PortCollectionAccessors
fn provided_ports_mut(&mut self) -> &mut impl PortCollectionAccessors
Returns mutable access to the collections entries.
Source§fn port_collection(&self) -> &impl PortCollection
fn port_collection(&self) -> &impl PortCollection
Returns an immutable
PortCollection.Auto Trait Implementations§
impl Freeze for Parallel
impl !RefUnwindSafe for Parallel
impl Send for Parallel
impl Sync for Parallel
impl Unpin for Parallel
impl UnsafeUnpin for Parallel
impl !UnwindSafe for Parallel
Blanket Implementations§
Source§impl<T> AnyPortValue for T
impl<T> AnyPortValue for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more