EpochError

Enum EpochError 

Source
pub enum EpochError {
Show 40 variants ConfigRead(Error), ConfigWrite(Error), ConfigCreation(String, Error), AlreadyInitialized { advice: Option<String>, }, FolderNotEmpty { name: String, show_label: Option<(usize, usize)>, }, EpochInfoParse(EpochId, PathBuf, Error), EpochInfoWrite { id: EpochId, path: PathBuf, help: Option<String>, src: Option<Error>, }, EpochNotFound(String), AmbiguousTag(String), EpochFolderMissing(EpochId, PathBuf), FutureEpochExist, EpochAlreadyExists(EpochId), SwitchPastEpoch(EpochId), InvalidEpochId(EpochId), TagAlreadyExists(EpochId, String), ParentEpochMissing(EpochId, EpochId), Io { source: Error, help: Option<String>, error_line: u32, }, Serde { source: Error, file_name: String, version: String, }, TreeInvalid(EpochId, String), MainFolderInvalid(String), ParsingEpochId(ParseIntError), LoadingEpochId(EpochId), Unknown(String), UnknownStatAcronim(String), IllFormedStatQualifier(String), UserError(UserErrors), RNGPickError { cause: String, help: Option<String>, }, EpochHashingImpossible(&'static str, u32), EntityNotFoundById(EntityIdentifier, Option<EntityType>), EntityNotFound(EntityType, Option<EntityIdentifier>), UniformRngCreation(Error), InvalidPositionFormat(String), ParsePositionError(String), TableStringConversionError { name: String, id: Uuid, }, ParsingDuration(&'static str, String), ParsingBounds(&'static str, String), EmptyIdentifier, EntityAlreadyExist(Option<EntityIdentifier>), ParsingArgument { argument_parsed: String, while_parsing: &'static str, }, IncorrectArgumentCombinaison { category: &'static str, e_type: EntityType, advice: Option<String>, },
}
Expand description

All errors that can occur while working with epochs.

The enum is deliberately small - each variant is self-contained and carries the information you need to surface a friendly message to the user (and to the test-suite).

Variants§

§

ConfigRead(Error)

Problems with the .epochconfig file.

§

ConfigWrite(Error)

Failed to write the epoch configuration.

§

ConfigCreation(String, Error)

Failed to create the epoch configuration.

§

AlreadyInitialized

This directory is already an epoch folder and thus cannot be initialized.

Fields

§advice: Option<String>

User given advice

§

FolderNotEmpty

This directory isn’t empty and thus cannot be initialized.

Fields

§name: String

Name of the file causing problem

§show_label: Option<(usize, usize)>

Trick used to have a cute line showing the following error message

§

EpochInfoParse(EpochId, PathBuf, Error)

Problems while serialising / deserialising an EpochInfo.

§

EpochInfoWrite

Failed to write .epochinfo in epoch {id} ({path}).

Fields

§id: EpochId

The id of the epoch

§path: PathBuf

The path of the epoch

§help: Option<String>

An optionnal help message

§src: Option<Error>

The source error

§

EpochNotFound(String)

The user supplied an epoch id or tag that does not exist.

§

AmbiguousTag(String)

The user attempted to resolve an epoch that is ambiguous.

§

EpochFolderMissing(EpochId, PathBuf)

The epoch folder for the target id is missing.

§

FutureEpochExist

A future epoch exists, forbidding you to compute next and overriding them.

§

EpochAlreadyExists(EpochId)

A specific epoch exists, forbidding the further execution of the command.

§

SwitchPastEpoch(EpochId)

Attempt to switch to an epoch that has already been advanced past.

§

InvalidEpochId(EpochId)

The supplied epoch id is out of bounds (negative, zero or too large).

§

TagAlreadyExists(EpochId, String)

A tag that the user tried to assign already exists.

§

ParentEpochMissing(EpochId, EpochId)

The parent epoch referenced in an EpochInfo cannot be found.

§

Io

Generic I/O errors that bubble up from other sub-tasks.

Fields

§source: Error

The source error

§help: Option<String>

An optionnal help message

§error_line: u32

Where the error originated from

§

Serde

Serialization / deserialization errors that are not caught above.

Fields

§source: Error

The source error

§file_name: String

The file that was being written

§version: String

A version number vs file version number

§

TreeInvalid(EpochId, String)

The epoch tree is in an incorrect state.

§

MainFolderInvalid(String)

The main folder is not an epoch folder.

§

ParsingEpochId(ParseIntError)

Couldn’t parse an EpochId.

§

LoadingEpochId(EpochId)

Impossible to load the given epoch

§

Unknown(String)

Any other error that didn’t fit into the above categories.

§

UnknownStatAcronim(String)

The user tried to parse an acronim that doen’t match any stats known to the system.

§

IllFormedStatQualifier(String)

The user gave a stat:identifier pair that was incorrect

§

UserError(UserErrors)

User error, meant to be very explicit over what happened and what to do.

§

RNGPickError

An error happened when picking a rng event

Fields

§cause: String

The root cause originating the error

§help: Option<String>

Optionnal help

§

EpochHashingImpossible(&'static str, u32)

A non-recoverable error while hashing an epoch identifier.

This error should never happen in normal operation. It is surfaced only when the hashing routine fails to produce a unique identifier for a given epoch index.

§

EntityNotFoundById(EntityIdentifier, Option<EntityType>)

The entity with id {0} could not be found.

§

EntityNotFound(EntityType, Option<EntityIdentifier>)

The entity could not be found

§

UniformRngCreation(Error)

The requested uniform RNG could not be created because the supplied distribution parameters were invalid.

§

InvalidPositionFormat(String)

The string did not contain exactly two comma-separated values.

§

ParsePositionError(String)

One of the components failed to parse as an isize.

§

TableStringConversionError

Failed to render a table into its string representation.

Fields

§name: String

The logical name of the table that failed to convert.

§id: Uuid

The UUID that uniquely identifies the table instance.

§

ParsingDuration(&'static str, String)

Failed to parse a duration string.

§

ParsingBounds(&'static str, String)

Failed to parse a bounds string.

§

EmptyIdentifier

The value started with @ but the remainder was not a valid id or the name was empty.

§

EntityAlreadyExist(Option<EntityIdentifier>)

The entity already exists.

§

ParsingArgument

The argument could not be parsed.

Fields

§argument_parsed: String

The argument that was being parsed

§while_parsing: &'static str

The thing that was being parsed

§

IncorrectArgumentCombinaison

Indicates that the user supplied mutually‑exclusive arguments.

The command line parser accepts a number of optional arguments that belong to argument groups – e.g. --force, --dry-run, --verbose, etc.
Some of these groups are incompatible with each other. If the user specifies an argument from one group together with an argument from a conflicting group, this error is returned.

Fields

§category: &'static str

The argument category that was involved in the conflict

§e_type: EntityType

The entity type for which the conflict was detected.

§advice: Option<String>

Optional, user‑friendly guidance on how to fix the issue.

Trait Implementations§

Source§

impl Debug for EpochError

Source§

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

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

impl Diagnostic for EpochError

Source§

fn code(&self) -> Option<Box<dyn Display + '_>>

Unique diagnostic code that can be used to look up more information about this Diagnostic. Ideally also globally unique, and documented in the toplevel crate’s documentation for easy searching. Rust path format (foo::bar::baz) is recommended, but more classic codes like E0123 or enums will work just fine.
Source§

fn help(&self) -> Option<Box<dyn Display + '_>>

Additional help text related to this Diagnostic. Do you have any advice for the poor soul who’s just run into this issue?
Source§

fn labels(&self) -> Option<Box<dyn Iterator<Item = LabeledSpan> + '_>>

Labels to apply to this Diagnostic’s Diagnostic::source_code
Source§

fn source_code(&self) -> Option<&dyn SourceCode>

Source code to apply this Diagnostic’s Diagnostic::labels to.
Source§

fn severity(&self) -> Option<Severity>

Diagnostic severity. This may be used by ReportHandlers to change the display format of this diagnostic. Read more
Source§

fn url<'a>(&'a self) -> Option<Box<dyn Display + 'a>>

URL to visit for a more detailed explanation/help about this Diagnostic.
Source§

fn related<'a>( &'a self, ) -> Option<Box<dyn Iterator<Item = &'a dyn Diagnostic> + 'a>>

Additional related Diagnostics.
Source§

fn diagnostic_source(&self) -> Option<&dyn Diagnostic>

The cause of the error.
Source§

impl Display for EpochError

Source§

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

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

impl Error for EpochError

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 From<Error> for EpochError

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<ParseIntError> for EpochError

Source§

fn from(source: ParseIntError) -> Self

Converts to this type from the input type.

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> Cell for T
where T: Display,

Source§

fn cell(self) -> CellStruct

Converts raw type to cell of a table
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<D> OwoColorize for D

Source§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
Source§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
Source§

fn black(&self) -> FgColorDisplay<'_, Black, Self>

Change the foreground color to black
Source§

fn on_black(&self) -> BgColorDisplay<'_, Black, Self>

Change the background color to black
Source§

fn red(&self) -> FgColorDisplay<'_, Red, Self>

Change the foreground color to red
Source§

fn on_red(&self) -> BgColorDisplay<'_, Red, Self>

Change the background color to red
Source§

fn green(&self) -> FgColorDisplay<'_, Green, Self>

Change the foreground color to green
Source§

fn on_green(&self) -> BgColorDisplay<'_, Green, Self>

Change the background color to green
Source§

fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>

Change the foreground color to yellow
Source§

fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>

Change the background color to yellow
Source§

fn blue(&self) -> FgColorDisplay<'_, Blue, Self>

Change the foreground color to blue
Source§

fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>

Change the background color to blue
Source§

fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to magenta
Source§

fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to magenta
Source§

fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>

Change the foreground color to purple
Source§

fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>

Change the background color to purple
Source§

fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>

Change the foreground color to cyan
Source§

fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>

Change the background color to cyan
Source§

fn white(&self) -> FgColorDisplay<'_, White, Self>

Change the foreground color to white
Source§

fn on_white(&self) -> BgColorDisplay<'_, White, Self>

Change the background color to white
Source§

fn default_color(&self) -> FgColorDisplay<'_, Default, Self>

Change the foreground color to the terminal default
Source§

fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>

Change the background color to the terminal default
Source§

fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>

Change the foreground color to bright black
Source§

fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>

Change the background color to bright black
Source§

fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>

Change the foreground color to bright red
Source§

fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>

Change the background color to bright red
Source§

fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>

Change the foreground color to bright green
Source§

fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>

Change the background color to bright green
Source§

fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>

Change the foreground color to bright yellow
Source§

fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>

Change the background color to bright yellow
Source§

fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>

Change the foreground color to bright blue
Source§

fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>

Change the background color to bright blue
Source§

fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright magenta
Source§

fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright magenta
Source§

fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>

Change the foreground color to bright purple
Source§

fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>

Change the background color to bright purple
Source§

fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>

Change the foreground color to bright cyan
Source§

fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>

Change the background color to bright cyan
Source§

fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>

Change the foreground color to bright white
Source§

fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>

Change the background color to bright white
Source§

fn bold(&self) -> BoldDisplay<'_, Self>

Make the text bold
Source§

fn dimmed(&self) -> DimDisplay<'_, Self>

Make the text dim
Source§

fn italic(&self) -> ItalicDisplay<'_, Self>

Make the text italicized
Source§

fn underline(&self) -> UnderlineDisplay<'_, Self>

Make the text underlined
Make the text blink
Make the text blink (but fast!)
Source§

fn reversed(&self) -> ReversedDisplay<'_, Self>

Swap the foreground and background colors
Source§

fn hidden(&self) -> HiddenDisplay<'_, Self>

Hide the text
Source§

fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>

Cross out the text
Source§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
Source§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
Source§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
Source§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
Source§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
Source§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
Source§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V