Skip to main content

ValidatorAnd

Struct ValidatorAnd 

Source
pub struct ValidatorAnd<A, B>(pub A, pub B);

Tuple Fields§

§0: A§1: B

Implementations§

Source§

impl<A, B> ValidatorAnd<A, B>

Source

pub fn new<const N: usize, R: ValidatorRet, F: FKScalar>(a: A, b: B) -> Self
where A: Validator<N, R, F>, B: Validator<N, R, F>,

Construct an AND combinator after a compile-time assertion that A and B share the Validator<N, R, F> signature passed via turbofish or inferred at the call site.

Direct tuple-struct construction (ValidatorAnd(a, b)) skips this check and is what the combine_validators! macro emits — both forms produce the same value, and the trait impl below only fires for (N, R, F) triples both members support, so callers that dispatch through the trait are safe either way.

Trait Implementations§

Source§

impl<A: Clone, B: Clone> Clone for ValidatorAnd<A, B>

Source§

fn clone(&self) -> ValidatorAnd<A, B>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<A: Debug, B: Debug> Debug for ValidatorAnd<A, B>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<const N: usize, F: FKScalar, R: ValidatorRet, A, B> Validator<N, R, F> for ValidatorAnd<A, B>
where A: Validator<N, R, F>, B: Validator<N, R, F>,

Blanket impls below cover every (N, R, F) triple that both member validators implement: a single generic impl over R and F (and N since validators are const-generic over DOF) means monomorphization fires the impl for every shared signature without manual enumeration.

Source§

type Context<'ctx> = (<A as Validator<N, R, F>>::Context<'ctx>, <B as Validator<N, R, F>>::Context<'ctx>)

Source§

fn validate<'ctx, E: Into<DekeError>, Q: SRobotQLike<N, E, F>>( &self, q: Q, ctx: &Self::Context<'ctx>, ) -> DekeResult<R>

Source§

fn validate_motion<'ctx>( &self, qs: &[SRobotQ<N, F>], ctx: &Self::Context<'ctx>, ) -> DekeResult<R>

Source§

const VALIDATE_MOTION_IS_CONTINUOUS: bool = false

Auto Trait Implementations§

§

impl<A, B> Freeze for ValidatorAnd<A, B>
where A: Freeze, B: Freeze,

§

impl<A, B> RefUnwindSafe for ValidatorAnd<A, B>

§

impl<A, B> Send for ValidatorAnd<A, B>
where A: Send, B: Send,

§

impl<A, B> Sync for ValidatorAnd<A, B>
where A: Sync, B: Sync,

§

impl<A, B> Unpin for ValidatorAnd<A, B>
where A: Unpin, B: Unpin,

§

impl<A, B> UnsafeUnpin for ValidatorAnd<A, B>
where A: UnsafeUnpin, B: UnsafeUnpin,

§

impl<A, B> UnwindSafe for ValidatorAnd<A, B>
where A: UnwindSafe, B: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.