pub struct StrictFinitePolicy<ScalarType: Sized, const PRECISION: u32>(/* private fields */);
Expand description
A validation policy that checks for strict finiteness.
For floating-point types (ScalarType =
f64
, ScalarType =
rug::Float
), this policy ensures that the value is:
- Not NaN (Not a Number).
- Not positive or negative Infinity.
- Not subnormal (for
f64
). Whilerug::Float
maintains its specified precision rather than having distinct subnormal representation in the IEEE 754 sense, this policy will also rejectrug::Float
values that are classified asFpCategory::Subnormal
(e.g., results of underflow that are tiny but not exactly zero).
For complex types (ScalarType =
Complex<f64>
, ScalarType =
rug::Complex
), this policy applies
the strict finiteness check to both the real and imaginary parts.
This struct is a Zero-Sized Type (ZST) and uses PhantomData
to associate
with the ScalarType
it validates.
Trait Implementations§
Source§impl<RawComplex: RawComplexTrait, const PRECISION: u32> ValidationPolicyComplex for StrictFinitePolicy<RawComplex, PRECISION>where
StrictFinitePolicy<RawComplex, PRECISION>: ValidationPolicy<Value = RawComplex, Error = <RawComplex as RawScalarTrait>::ValidationErrors>,
impl<RawComplex: RawComplexTrait, const PRECISION: u32> ValidationPolicyComplex for StrictFinitePolicy<RawComplex, PRECISION>where
StrictFinitePolicy<RawComplex, PRECISION>: ValidationPolicy<Value = RawComplex, Error = <RawComplex as RawScalarTrait>::ValidationErrors>,
Source§impl<RawReal: RawRealTrait, const PRECISION: u32> ValidationPolicyReal for StrictFinitePolicy<RawReal, PRECISION>where
StrictFinitePolicy<RawReal, PRECISION>: ValidationPolicy<Value = RawReal, Error = <RawReal as RawScalarTrait>::ValidationErrors>,
impl<RawReal: RawRealTrait, const PRECISION: u32> ValidationPolicyReal for StrictFinitePolicy<RawReal, PRECISION>where
StrictFinitePolicy<RawReal, PRECISION>: ValidationPolicy<Value = RawReal, Error = <RawReal as RawScalarTrait>::ValidationErrors>,
Auto Trait Implementations§
impl<ScalarType, const PRECISION: u32> Freeze for StrictFinitePolicy<ScalarType, PRECISION>
impl<ScalarType, const PRECISION: u32> RefUnwindSafe for StrictFinitePolicy<ScalarType, PRECISION>where
ScalarType: RefUnwindSafe,
impl<ScalarType, const PRECISION: u32> Send for StrictFinitePolicy<ScalarType, PRECISION>where
ScalarType: Send,
impl<ScalarType, const PRECISION: u32> Sync for StrictFinitePolicy<ScalarType, PRECISION>where
ScalarType: Sync,
impl<ScalarType, const PRECISION: u32> Unpin for StrictFinitePolicy<ScalarType, PRECISION>where
ScalarType: Unpin,
impl<ScalarType, const PRECISION: u32> UnwindSafe for StrictFinitePolicy<ScalarType, PRECISION>where
ScalarType: UnwindSafe,
Blanket Implementations§
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