pub struct NumKernelStrictFiniteInDebug<RawReal: RawRealTrait, const PRECISION: u32> { /* private fields */ }Expand description
A debug-only strict finite kernel validation policy for raw real numbers.
This kernel applies StrictFinitePolicy validation only in debug builds.
In release builds, validation is skipped for maximum performance.
§Use Cases
- Performance-critical code where validation overhead is unacceptable in production
- Code that has been thoroughly tested with
NumKernelStrictFinitein debug mode
§Comparison with NumKernelStrictFinite
| Aspect | NumKernelStrictFinite | NumKernelStrictFiniteInDebug |
|---|---|---|
| Debug validation | ✅ Yes | ✅ Yes |
| Release validation | ✅ Yes | ❌ No |
Eq + Hash + Ord | ✅ Yes | ❌ No (not safe without validation) |
| Performance | Slower | Faster in release |
§Safety Note
Since validation is skipped in release builds, this kernel does NOT implement
the GuaranteesFiniteRealValues
marker trait, meaning it cannot be used with HashMap, BTreeMap, or other
collections requiring Eq + Hash + Ord.
Trait Implementations§
Source§impl<RawReal: RawRealTrait, const PRECISION: u32> NumKernel for NumKernelStrictFiniteInDebug<RawReal, PRECISION>where
StrictFinitePolicy<RawReal, PRECISION>: ValidationPolicyReal<Value = RawReal>,
StrictFinitePolicy<RawReal::RawComplex, PRECISION>: ValidationPolicyComplex<Value = RawReal::RawComplex>,
impl<RawReal: RawRealTrait, const PRECISION: u32> NumKernel for NumKernelStrictFiniteInDebug<RawReal, PRECISION>where
StrictFinitePolicy<RawReal, PRECISION>: ValidationPolicyReal<Value = RawReal>,
StrictFinitePolicy<RawReal::RawComplex, PRECISION>: ValidationPolicyComplex<Value = RawReal::RawComplex>,
Source§type RealPolicy = DebugValidationPolicy<StrictFinitePolicy<RawReal, PRECISION>>
type RealPolicy = DebugValidationPolicy<StrictFinitePolicy<RawReal, PRECISION>>
The validation policy for real numbers. Read more
Source§type ComplexPolicy = DebugValidationPolicy<StrictFinitePolicy<<RawReal as RawRealTrait>::RawComplex, PRECISION>>
type ComplexPolicy = DebugValidationPolicy<StrictFinitePolicy<<RawReal as RawRealTrait>::RawComplex, PRECISION>>
The validation policy for complex numbers. Read more
Source§type Real = RealValidated<NumKernelStrictFiniteInDebug<RawReal, PRECISION>>
type Real = RealValidated<NumKernelStrictFiniteInDebug<RawReal, PRECISION>>
The final, high-level, validated real scalar type for this kernel.
This is typically an alias for
RealValidated<Self>.Source§type Complex = ComplexValidated<NumKernelStrictFiniteInDebug<RawReal, PRECISION>>
type Complex = ComplexValidated<NumKernelStrictFiniteInDebug<RawReal, PRECISION>>
The final, high-level, validated complex scalar type for this kernel.
This is typically an alias for
ComplexValidated<Self>.
The RealType = Self::Real bound ensures the complex type is composed of the
corresponding validated real type from the same kernel.Source§impl<RawReal: RawRealTrait, const PRECISION: u32> RawKernel for NumKernelStrictFiniteInDebug<RawReal, PRECISION>
impl<RawReal: RawRealTrait, const PRECISION: u32> RawKernel for NumKernelStrictFiniteInDebug<RawReal, PRECISION>
Source§type RawComplex = <RawReal as RawRealTrait>::RawComplex
type RawComplex = <RawReal as RawRealTrait>::RawComplex
The raw complex type associated with this kernel (e.g.,
num::Complex<f64>).Auto Trait Implementations§
impl<RawReal, const PRECISION: u32> Freeze for NumKernelStrictFiniteInDebug<RawReal, PRECISION>
impl<RawReal, const PRECISION: u32> RefUnwindSafe for NumKernelStrictFiniteInDebug<RawReal, PRECISION>where
RawReal: RefUnwindSafe,
impl<RawReal, const PRECISION: u32> Send for NumKernelStrictFiniteInDebug<RawReal, PRECISION>
impl<RawReal, const PRECISION: u32> Sync for NumKernelStrictFiniteInDebug<RawReal, PRECISION>
impl<RawReal, const PRECISION: u32> Unpin for NumKernelStrictFiniteInDebug<RawReal, PRECISION>where
RawReal: Unpin,
impl<RawReal, const PRECISION: u32> UnwindSafe for NumKernelStrictFiniteInDebug<RawReal, PRECISION>where
RawReal: 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
Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
Source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
Source§fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
Source§fn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> WrappingAs for T
impl<T> WrappingAs for T
Source§fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
Source§fn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.