pub enum ErrorsPositiveRealScalar<RealType: RealScalar> {
NegativeValue {
value: RealType,
backtrace: Backtrace,
},
ZeroValue {
backtrace: Backtrace,
},
}Expand description
Error type for PositiveRealScalar<T> validation failures.
This enum provides detailed error information when attempting to construct
a PositiveRealScalar<T> with invalid input values.
§Error Variants
ErrorsPositiveRealScalar::NegativeValue: The input was negative (< 0).ErrorsPositiveRealScalar::ZeroValue: The input was zero (not strictly positive).
§Mathematical Distinction
Positive real numbers are defined as ℝ⁺ = {x ∈ ℝ : x > 0}, which excludes zero.
This is distinct from non-negative reals ℝ₀⁺ = {x ∈ ℝ : x ≥ 0}.
§Examples
use num_valid::scalars::{PositiveRealScalar, ErrorsPositiveRealScalar};
use try_create::TryNew;
// Zero is NOT positive
match PositiveRealScalar::try_new(0.0_f64) {
Err(ErrorsPositiveRealScalar::ZeroValue { .. }) => {
println!("Zero is not strictly positive (x > 0 required)");
}
_ => unreachable!(),
}
// Negative values rejected with the value included in the error
match PositiveRealScalar::try_new(-2.5_f64) {
Err(ErrorsPositiveRealScalar::NegativeValue { value, .. }) => {
assert_eq!(value, -2.5);
}
_ => unreachable!(),
}Variants§
NegativeValue
The input value was negative (< 0).
Fields
§
value: RealTypeThe specific negative value that was rejected.
ZeroValue
The input value was exactly zero (not strictly positive).
Zero is NOT positive in mathematical terms. The positive real numbers
are defined as ℝ⁺ = {x ∈ ℝ : x > 0}, which excludes zero.
Trait Implementations§
Source§impl<RealType: Debug + RealScalar> Debug for ErrorsPositiveRealScalar<RealType>
impl<RealType: Debug + RealScalar> Debug for ErrorsPositiveRealScalar<RealType>
Source§impl<RealType> Display for ErrorsPositiveRealScalar<RealType>where
RealType: Display + RealScalar,
impl<RealType> Display for ErrorsPositiveRealScalar<RealType>where
RealType: Display + RealScalar,
Source§impl<RealType: RealScalar> Error for ErrorsPositiveRealScalar<RealType>
impl<RealType: RealScalar> Error for ErrorsPositiveRealScalar<RealType>
Source§fn provide<'_request>(&'_request self, request: &mut Request<'_request>)
fn provide<'_request>(&'_request self, request: &mut Request<'_request>)
🔬This is a nightly-only experimental API. (
error_generic_member_access)Provides type-based access to context intended for error reports. Read more
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0: use the Display impl or to_string()
Auto Trait Implementations§
impl<RealType> !Freeze for ErrorsPositiveRealScalar<RealType>
impl<RealType> RefUnwindSafe for ErrorsPositiveRealScalar<RealType>
impl<RealType> Send for ErrorsPositiveRealScalar<RealType>
impl<RealType> Sync for ErrorsPositiveRealScalar<RealType>
impl<RealType> Unpin for ErrorsPositiveRealScalar<RealType>
impl<RealType> UnwindSafe for ErrorsPositiveRealScalar<RealType>
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.