pub trait Validator<const N: usize, R: ValidatorRet = (), F: FKScalar = f32>:
Sized
+ Clone
+ Debug
+ Send
+ Sync
+ 'static {
type Context<'ctx>: ValidatorContext;
// Required methods
fn validate<'ctx, E: Into<DekeError>, A: SRobotQLike<N, E, F>>(
&self,
q: A,
ctx: &Self::Context<'ctx>,
) -> DekeResult<R>;
fn validate_motion<'ctx>(
&self,
qs: &[SRobotQ<N, F>],
ctx: &Self::Context<'ctx>,
) -> DekeResult<R>;
}Required Associated Types§
type Context<'ctx>: ValidatorContext
Required Methods§
fn validate<'ctx, E: Into<DekeError>, A: SRobotQLike<N, E, F>>( &self, q: A, ctx: &Self::Context<'ctx>, ) -> DekeResult<R>
fn validate_motion<'ctx>( &self, qs: &[SRobotQ<N, F>], ctx: &Self::Context<'ctx>, ) -> DekeResult<R>
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.
Implementors§
Source§impl Validator<1, (), f64> for DynamicJointValidator
f64 entry point — downcasts to f32 and dispatches to the f32 impl.
DynamicJointValidator stores JointValidator<N, f32>, so f64 inputs
are narrowed at the boundary; precision is governed by the f32 limits
the validator was configured with.
impl Validator<1, (), f64> for DynamicJointValidator
f64 entry point — downcasts to f32 and dispatches to the f32 impl.
DynamicJointValidator stores JointValidator<N, f32>, so f64 inputs
are narrowed at the boundary; precision is governed by the f32 limits
the validator was configured with.
Source§impl Validator<2, (), f64> for DynamicJointValidator
f64 entry point — downcasts to f32 and dispatches to the f32 impl.
DynamicJointValidator stores JointValidator<N, f32>, so f64 inputs
are narrowed at the boundary; precision is governed by the f32 limits
the validator was configured with.
impl Validator<2, (), f64> for DynamicJointValidator
f64 entry point — downcasts to f32 and dispatches to the f32 impl.
DynamicJointValidator stores JointValidator<N, f32>, so f64 inputs
are narrowed at the boundary; precision is governed by the f32 limits
the validator was configured with.
Source§impl Validator<3, (), f64> for DynamicJointValidator
f64 entry point — downcasts to f32 and dispatches to the f32 impl.
DynamicJointValidator stores JointValidator<N, f32>, so f64 inputs
are narrowed at the boundary; precision is governed by the f32 limits
the validator was configured with.
impl Validator<3, (), f64> for DynamicJointValidator
f64 entry point — downcasts to f32 and dispatches to the f32 impl.
DynamicJointValidator stores JointValidator<N, f32>, so f64 inputs
are narrowed at the boundary; precision is governed by the f32 limits
the validator was configured with.
Source§impl Validator<4, (), f64> for DynamicJointValidator
f64 entry point — downcasts to f32 and dispatches to the f32 impl.
DynamicJointValidator stores JointValidator<N, f32>, so f64 inputs
are narrowed at the boundary; precision is governed by the f32 limits
the validator was configured with.
impl Validator<4, (), f64> for DynamicJointValidator
f64 entry point — downcasts to f32 and dispatches to the f32 impl.
DynamicJointValidator stores JointValidator<N, f32>, so f64 inputs
are narrowed at the boundary; precision is governed by the f32 limits
the validator was configured with.
Source§impl Validator<5, (), f64> for DynamicJointValidator
f64 entry point — downcasts to f32 and dispatches to the f32 impl.
DynamicJointValidator stores JointValidator<N, f32>, so f64 inputs
are narrowed at the boundary; precision is governed by the f32 limits
the validator was configured with.
impl Validator<5, (), f64> for DynamicJointValidator
f64 entry point — downcasts to f32 and dispatches to the f32 impl.
DynamicJointValidator stores JointValidator<N, f32>, so f64 inputs
are narrowed at the boundary; precision is governed by the f32 limits
the validator was configured with.
Source§impl Validator<6, (), f64> for DynamicJointValidator
f64 entry point — downcasts to f32 and dispatches to the f32 impl.
DynamicJointValidator stores JointValidator<N, f32>, so f64 inputs
are narrowed at the boundary; precision is governed by the f32 limits
the validator was configured with.
impl Validator<6, (), f64> for DynamicJointValidator
f64 entry point — downcasts to f32 and dispatches to the f32 impl.
DynamicJointValidator stores JointValidator<N, f32>, so f64 inputs
are narrowed at the boundary; precision is governed by the f32 limits
the validator was configured with.
Source§impl Validator<7, (), f64> for DynamicJointValidator
f64 entry point — downcasts to f32 and dispatches to the f32 impl.
DynamicJointValidator stores JointValidator<N, f32>, so f64 inputs
are narrowed at the boundary; precision is governed by the f32 limits
the validator was configured with.
impl Validator<7, (), f64> for DynamicJointValidator
f64 entry point — downcasts to f32 and dispatches to the f32 impl.
DynamicJointValidator stores JointValidator<N, f32>, so f64 inputs
are narrowed at the boundary; precision is governed by the f32 limits
the validator was configured with.
Source§impl Validator<8, (), f64> for DynamicJointValidator
f64 entry point — downcasts to f32 and dispatches to the f32 impl.
DynamicJointValidator stores JointValidator<N, f32>, so f64 inputs
are narrowed at the boundary; precision is governed by the f32 limits
the validator was configured with.
impl Validator<8, (), f64> for DynamicJointValidator
f64 entry point — downcasts to f32 and dispatches to the f32 impl.
DynamicJointValidator stores JointValidator<N, f32>, so f64 inputs
are narrowed at the boundary; precision is governed by the f32 limits
the validator was configured with.
Source§impl<const N: usize> Validator<N> for JointValidator<N, f64>
Cross-precision entry point: f64-storage JointValidator accepting f32
inputs. The f32 input is widened to f64 (lossless) before comparison.
impl<const N: usize> Validator<N> for JointValidator<N, f64>
Cross-precision entry point: f64-storage JointValidator accepting f32
inputs. The f32 input is widened to f64 (lossless) before comparison.
Source§impl<const N: usize> Validator<N, (), f64> for JointValidator<N, f32>
Cross-precision entry point: f32-storage JointValidator accepting f64
inputs. The input is narrowed to f32 at the boundary so the same limits
govern both precisions; comparison is done in storage precision.
impl<const N: usize> Validator<N, (), f64> for JointValidator<N, f32>
Cross-precision entry point: f32-storage JointValidator accepting f64
inputs. The input is narrowed to f32 at the boundary so the same limits
govern both precisions; comparison is done in storage precision.
Source§impl<const N: usize, F: FKScalar, A> Validator<N, (), F> for ValidatorNot<A>
Not is only meaningful for R = () (a pass/fail validator). For
scalar-returning validators the inversion of the return value isn’t
well-defined, so the impl is restricted to the unit case.
impl<const N: usize, F: FKScalar, A> Validator<N, (), F> for ValidatorNot<A>
Not is only meaningful for R = () (a pass/fail validator). For
scalar-returning validators the inversion of the return value isn’t
well-defined, so the impl is restricted to the unit case.
Source§impl<const N: usize, F: FKScalar, R: ValidatorRet, A, B> Validator<N, R, F> for ValidatorAnd<A, B>
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.
impl<const N: usize, F: FKScalar, R: ValidatorRet, A, B> Validator<N, R, F> for ValidatorAnd<A, B>
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.