Skip to main content

Problem

Enum Problem 

Source
#[non_exhaustive]
pub enum Problem {
Show 14 variants ParseError, SqrtNegative, DivideByZero, NotFound, InsufficientParameters, NotANumber, Infinity, BadFraction, BadDecimal, BadInteger, OutOfRange, NotAnInteger, Exhausted, UnknownZero,
}
Expand description

Problems when either parsing or attempting Arithmetic with Real numbers or when trying to make or convert to a Rational.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

ParseError

Unspecified problem while parsing an expression

§

SqrtNegative

Tried to take the Square Root of a Negative, these values are Imaginary

§

DivideByZero

Tried to divide by Zero, also arises if attempting to make a fraction with a zero denominator

§

NotFound

The specified identifier in an expression was not found

§

InsufficientParameters

The expression has too few parameters to evaluate

§

NotANumber

Tried to convert a floating point NaN, which has no equivalent or evaluated the Logarithm of a non-positive value or evaluated some other function outside its domain

§

Infinity

Tried to convert a floating point Infinity which has no equivalent

§

BadFraction

When parsing a fraction either the numerator or denominator weren’t decimal digits

§

BadDecimal

When parsing a decimal there was non-digits on one or both sides of the decimal point

§

BadInteger

When parsing an integer there were non-digits in the text

§

OutOfRange

The integer was outside the range for the chosen type

§

NotAnInteger

The rational was not an integer

§

Exhausted

Operation was rejected because it was likely to consume all available resources

§

UnknownZero

A checked operation could not prove that a value was non-zero.

This is distinct from Problem::DivideByZero: exact-real algorithms sometimes have enough structural information to reject definite zero, but not enough to certify non-zero without unbounded refinement.

Trait Implementations§

Source§

impl Clone for Problem

Source§

fn clone(&self) -> Problem

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 Debug for Problem

Source§

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

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

impl Display for Problem

Source§

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

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

impl Error for Problem

1.30.0 · Source§

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

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl PartialEq for Problem

Source§

fn eq(&self, other: &Problem) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Problem

Source§

impl StructuralPartialEq for Problem

Auto Trait Implementations§

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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.