#[non_exhaustive]pub enum Error {
Overflow(Rolled<'static>),
InfiniteRolls(Dice),
UnknownCondition(String),
}
Expand description
An error resulting from a dice operation
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.
Overflow(Rolled<'static>)
There was an integer overflow when performing mathematical operations on roll values. This normally should not ever happen given the types used for die counts, sides, and totals.
InfiniteRolls(Dice)
Rolling the dice specified would result in infinite rolls.
§Examples
use tyche::dice::{roller::{FastRand as FastRandRoller, Roller}, Dice, Error};
let dice = Dice::builder().count(4).sides(1).explode(None, true).build();
assert!(matches!(FastRandRoller::default().roll(&dice, true), Err(Error::InfiniteRolls(..))));
UnknownCondition(String)
The provided symbol doesn’t match to a known condition.
§Examples
use tyche::dice::{modifier::Condition, Error};
let cond = Condition::from_symbol_and_val("!", 4);
assert!(matches!(cond, Err(Error::UnknownCondition(..))));
Trait Implementations§
source§impl Error for Error
impl Error for Error
1.30.0 · source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
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 RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl UnwindSafe for Error
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