pub struct InverterNode { /* private fields */ }Expand description
Negates a Success/Failure result from its single child; Running passes through
unchanged. The canonical decorator for turning a “condition” leaf/subtree into its opposite
(e.g. “target NOT in range”) without duplicating the underlying check.
Implementations§
Source§impl InverterNode
impl InverterNode
Sourcepub fn new(child: Box<dyn BehaviorNode>) -> InverterNode
pub fn new(child: Box<dyn BehaviorNode>) -> InverterNode
Create a new inverter node wrapping child.
Trait Implementations§
Source§impl BehaviorNode for InverterNode
impl BehaviorNode for InverterNode
Source§fn tick<'life0, 'life1, 'async_trait>(
&'life0 mut self,
ctx: &'life1 Context,
) -> Pin<Box<dyn Future<Output = Result<NodeStatus, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
InverterNode: 'async_trait,
fn tick<'life0, 'life1, 'async_trait>(
&'life0 mut self,
ctx: &'life1 Context,
) -> Pin<Box<dyn Future<Output = Result<NodeStatus, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
InverterNode: 'async_trait,
Execute one tick of the behavior. Called repeatedly by the execution engine; should
perform one unit of work, return quickly, and report progress via
NodeStatus.Source§fn children_mut(&mut self) -> Vec<&mut dyn BehaviorNode>
fn children_mut(&mut self) -> Vec<&mut dyn BehaviorNode>
Return mutable references to this node’s child behaviors, in the order
they should receive lifecycle events. Leaf nodes should not override this;
composite nodes override it to expose their children.
Source§fn active_capability(&self) -> Option<&str>
fn active_capability(&self) -> Option<&str>
The
capability this node implies should be published on /behavior/status while it’s
actively being ticked; None for nodes with no such gate (the default). Composite nodes
override this to forward whichever child is currently active.Source§fn reset_self(&mut self)
fn reset_self(&mut self)
Reset this node’s own local state, ignoring children. Read more
Source§fn reset<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
fn reset<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
Self: 'async_trait,
Reset the behavior to its initial state. Read more
Auto Trait Implementations§
impl !RefUnwindSafe for InverterNode
impl !UnwindSafe for InverterNode
impl Freeze for InverterNode
impl Send for InverterNode
impl Sync for InverterNode
impl Unpin for InverterNode
impl UnsafeUnpin for InverterNode
Blanket Implementations§
Source§impl<T> BehaviorNodeExt for Twhere
T: BehaviorNode + ?Sized,
impl<T> BehaviorNodeExt for Twhere
T: BehaviorNode + ?Sized,
Source§fn run_until_complete<'life0, 'life1, 'async_trait>(
&'life0 mut self,
ctx: &'life1 Context,
) -> Pin<Box<dyn Future<Output = Result<NodeStatus, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Send + 'async_trait,
fn run_until_complete<'life0, 'life1, 'async_trait>(
&'life0 mut self,
ctx: &'life1 Context,
) -> Pin<Box<dyn Future<Output = Result<NodeStatus, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Send + 'async_trait,
Run this behavior until it completes (Success or Failure). Read more
Source§fn run_with_limit<'life0, 'life1, 'async_trait>(
&'life0 mut self,
ctx: &'life1 Context,
max_ticks: usize,
) -> Pin<Box<dyn Future<Output = Result<NodeStatus, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Send + 'async_trait,
fn run_with_limit<'life0, 'life1, 'async_trait>(
&'life0 mut self,
ctx: &'life1 Context,
max_ticks: usize,
) -> Pin<Box<dyn Future<Output = Result<NodeStatus, Error>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Send + 'async_trait,
Run this behavior with a maximum number of ticks. Read more
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more