#[non_exhaustive]
pub enum EvalexprError {
Show 31 variants WrongOperatorArgumentAmount { expected: usize, actual: usize, }, WrongFunctionArgumentAmount { expected: usize, actual: usize, }, ExpectedString { actual: Value, }, ExpectedInt { actual: Value, }, ExpectedFloat { actual: Value, }, ExpectedNumber { actual: Value, }, ExpectedNumberOrString { actual: Value, }, ExpectedBoolean { actual: Value, }, ExpectedTuple { actual: Value, }, ExpectedFixedLenTuple { expected_len: usize, actual: Value, }, ExpectedEmpty { actual: Value, }, AppendedToLeafNode, PrecedenceViolation, VariableIdentifierNotFound(String), FunctionIdentifierNotFound(String), TypeError { expected: Vec<ValueType>, actual: Value, }, WrongTypeCombination { operator: Operator, actual: Vec<ValueType>, }, UnmatchedLBrace, UnmatchedRBrace, MissingOperatorOutsideOfBrace, UnmatchedPartialToken { first: PartialToken, second: Option<PartialToken>, }, AdditionError { augend: Value, addend: Value, }, SubtractionError { minuend: Value, subtrahend: Value, }, NegationError { argument: Value, }, MultiplicationError { multiplicand: Value, multiplier: Value, }, DivisionError { dividend: Value, divisor: Value, }, ModulationError { dividend: Value, divisor: Value, }, InvalidRegex { regex: String, message: String, }, ContextNotMutable, IllegalEscapeSequence(String), CustomMessage(String),
}
Expand description

Errors used in this crate.

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.

WrongOperatorArgumentAmount

Fields

expected: usize

The expected amount of arguments.

actual: usize

The actual amount of arguments.

An operator was called with a wrong amount of arguments.

WrongFunctionArgumentAmount

Fields

expected: usize

The expected amount of arguments.

actual: usize

The actual amount of arguments.

A function was called with a wrong amount of arguments.

ExpectedString

Fields

actual: Value

The actual value.

A string value was expected.

ExpectedInt

Fields

actual: Value

The actual value.

An integer value was expected.

ExpectedFloat

Fields

actual: Value

The actual value.

A float value was expected.

ExpectedNumber

Fields

actual: Value

The actual value.

A numeric value was expected. Numeric values are the variants Value::Int and Value::Float.

ExpectedNumberOrString

Fields

actual: Value

The actual value.

A numeric or string value was expected. Numeric values are the variants Value::Int and Value::Float.

ExpectedBoolean

Fields

actual: Value

The actual value.

A boolean value was expected.

ExpectedTuple

Fields

actual: Value

The actual value.

A tuple value was expected.

ExpectedFixedLenTuple

Fields

expected_len: usize

The expected len

actual: Value

The actual value.

A tuple value of a certain length was expected.

ExpectedEmpty

Fields

actual: Value

The actual value.

An empty value was expected.

AppendedToLeafNode

Tried to append a child to a leaf node. Leaf nodes cannot have children.

PrecedenceViolation

Tried to append a child to a node such that the precedence of the child is not higher. This error should never occur. If it does, please file a bug report.

VariableIdentifierNotFound(String)

Tuple Fields

0: String

A VariableIdentifier operation did not find its value in the context.

FunctionIdentifierNotFound(String)

Tuple Fields

0: String

A FunctionIdentifier operation did not find its value in the context.

TypeError

Fields

expected: Vec<ValueType>

The expected types.

actual: Value

The actual value.

A value has the wrong type. Only use this if there is no other error that describes the expected and provided types in more detail.

WrongTypeCombination

Fields

operator: Operator

The operator that whose evaluation caused the error.

actual: Vec<ValueType>

The types that were used in the operator causing it to fail.

An operator is used with a wrong combination of types.

UnmatchedLBrace

An opening brace without a matching closing brace was found.

UnmatchedRBrace

A closing brace without a matching opening brace was found.

MissingOperatorOutsideOfBrace

Left of an opening brace or right of a closing brace is a token that does not expect the brace next to it. For example, writing 4(5) would yield this error, as the 4 does not have any operands.

UnmatchedPartialToken

Fields

first: PartialToken

The unmatched partial token.

second: Option<PartialToken>

The token that follows the unmatched partial token and that cannot be matched to the partial token, or None, if first is the last partial token in the stream.

A PartialToken is unmatched, such that it cannot be combined into a full Token. This happens if for example a single = is found, surrounded by whitespace. It is not a token, but it is part of the string representation of some tokens.

AdditionError

Fields

augend: Value

The first argument of the addition.

addend: Value

The second argument of the addition.

An addition operation performed by Rust failed.

SubtractionError

Fields

minuend: Value

The first argument of the subtraction.

subtrahend: Value

The second argument of the subtraction.

A subtraction operation performed by Rust failed.

NegationError

Fields

argument: Value

The argument of the negation.

A negation operation performed by Rust failed.

MultiplicationError

Fields

multiplicand: Value

The first argument of the multiplication.

multiplier: Value

The second argument of the multiplication.

A multiplication operation performed by Rust failed.

DivisionError

Fields

dividend: Value

The first argument of the division.

divisor: Value

The second argument of the division.

A division operation performed by Rust failed.

ModulationError

Fields

dividend: Value

The first argument of the modulation.

divisor: Value

The second argument of the modulation.

A modulation operation performed by Rust failed.

InvalidRegex

Fields

regex: String

The invalid regular expression

message: String

Failure message from the regex engine

A regular expression could not be parsed

ContextNotMutable

A modification was attempted on a Context that does not allow modifications.

IllegalEscapeSequence(String)

Tuple Fields

0: String

An escape sequence within a string literal is illegal.

CustomMessage(String)

Tuple Fields

0: String

A custom error explained by its message.

Implementations

Constructs EvalexprError::TypeError{actual, expected}.

Constructs EvalexprError::WrongTypeCombination{operator, actual}.

Constructs EvalexprError::ExpectedString{actual}.

Constructs EvalexprError::ExpectedInt{actual}.

Constructs EvalexprError::ExpectedFloat{actual}.

Constructs EvalexprError::ExpectedNumber{actual}.

Constructs EvalexprError::ExpectedNumberOrString{actual}.

Constructs EvalexprError::ExpectedBoolean{actual}.

Constructs EvalexprError::ExpectedTuple{actual}.

Constructs EvalexprError::ExpectedFixedLenTuple{expected_len, actual}.

Constructs EvalexprError::ExpectedEmpty{actual}.

Constructs EvalexprError::InvalidRegex(regex)

Trait Implementations

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

The lower-level source of this error, if any. Read more

🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

👎 Deprecated since 1.42.0:

use the Display impl or to_string()

👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.