Skip to main content

Error

Enum Error 

Source
#[non_exhaustive]
pub enum Error { Parse(ParseError), Config(ConfigError), Spec(SpecError), Io(Error),
#[non_exhaustive]
IoAt { path: PathBuf, source: Error, }, Formatter(String),
#[non_exhaustive]
CliArg { message: String, },
#[non_exhaustive]
InvalidRegex { pattern: String, source: Error, },
#[non_exhaustive]
Render { format: String, message: String, },
#[non_exhaustive]
LegacyMigration { path: PathBuf, message: String, },
#[non_exhaustive]
LayoutTooWide { line_no: usize, width: usize, limit: usize, }, }
Expand description

Errors that can be returned by parsing, config loading, spec loading, or formatting operations.

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.
§

Parse(ParseError)

A parser error annotated with source text and line-offset context.

§

Config(ConfigError)

A user config parse error.

§

Spec(SpecError)

A built-in or user override spec parse error.

§

Io(Error)

A filesystem or stream I/O failure where no path is attached. Use Error::io_at (or the IoResultExt::with_path adapter) when reporting an error against a specific file — the path-bearing variant is far more useful in user-facing diagnostics.

§

#[non_exhaustive]
IoAt

A filesystem I/O failure annotated with the path that caused it. Used at every site where we have a path in scope; far more actionable than a bare permission denied from Error::Io.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§path: PathBuf

The file or directory that failed.

§source: Error

The underlying I/O error.

§

Formatter(String)

A higher-level formatter or CLI error that does not fit another structured variant. Prefer Error::CliArg, Error::InvalidRegex, Error::Render, Error::LegacyMigration, or Error::IoAt when the failure mode is one of those — Error::Formatter is the catch-all for the small set of cases that legitimately don’t fit any of those categories (e.g. LSP runtime failures, semantic verification failures, watch-loop infrastructure, git subprocess failures, spec parsing from in-memory strings without a path).

§

#[non_exhaustive]
CliArg

A CLI argument validation failure — incompatible flag combinations, missing required arguments, conflicting overrides.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§message: String

Human-readable description of what argument combination is invalid.

§

#[non_exhaustive]
InvalidRegex

A regex pattern from the user (CLI flag, config file, or spec override) failed to compile or apply.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§pattern: String

The pattern (or named config slot) that failed to compile.

§source: Error

The underlying regex crate error.

§

#[non_exhaustive]
Render

A failure rendering a crate::Config or spec to text (TOML / YAML / JSON), or building a machine-format report (SARIF / Checkstyle / JUnit / JSON edit). The format field names the target format.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§format: String

Name of the target format ("YAML", "TOML", "JSON", "SARIF", etc.).

§message: String

Human-readable detail of what went wrong.

§

#[non_exhaustive]
LegacyMigration

A failure during legacy cmake-format config migration — parsing the old format, converting it, or writing the modernised file. The path field carries the legacy file the user was trying to migrate.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§path: PathBuf

The legacy config file being migrated.

§message: String

Human-readable description of the migration failure.

§

#[non_exhaustive]
LayoutTooWide

A formatted line exceeded the configured line width and require_valid_layout is enabled.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§line_no: usize

1-based line number in the formatted output.

§width: usize

Actual character width of the offending line.

§limit: usize

Configured crate::Config::line_width limit.

Implementations§

Source§

impl Error

Source

pub fn with_display_name(self, display_name: impl Into<String>) -> Self

Attach a human-facing source name (e.g. a file path) to a contextual ParseError. No-op for any other variant — Config, Spec, Io, IoAt, Formatter, CliArg, InvalidRegex, Render, LegacyMigration, and LayoutTooWide already carry the context they need and are returned unchanged.

Source

pub fn io_at(path: impl Into<PathBuf>, source: Error) -> Self

Build an Error::IoAt variant from a path and an underlying io::Error. Use this at every I/O call site where you have a path in scope — Error::Io is reserved for streams (stdout, stdin) and similar path-less I/O.

Source

pub fn cli_arg(message: impl Into<String>) -> Self

Build an Error::CliArg variant from a human-readable description of the invalid argument combination.

Source

pub fn invalid_regex(pattern: impl Into<String>, source: Error) -> Self

Build an Error::InvalidRegex variant from the pattern that failed to compile and the underlying regex::Error.

Source

pub fn render(format: impl Into<String>, message: impl Into<String>) -> Self

Build an Error::Render variant from the target format name and a human-readable failure message.

Source

pub fn legacy_migration( path: impl Into<PathBuf>, message: impl Into<String>, ) -> Self

Build an Error::LegacyMigration variant from the legacy config path and a human-readable failure message.

Trait Implementations§

Source§

impl Debug for Error

Source§

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

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

impl Display for Error

Source§

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

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

impl Error for Error

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<ConfigError> for Error

Source§

fn from(source: ConfigError) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for Error

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<ParseError> for Error

Source§

fn from(source: ParseError) -> Self

Converts to this type from the input type.
Source§

impl From<SpecError> for Error

Source§

fn from(source: SpecError) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl !RefUnwindSafe for Error

§

impl !UnwindSafe for Error

§

impl Freeze for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl UnsafeUnpin for Error

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> 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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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.