Skip to main content

ToolchainError

Enum ToolchainError 

Source
pub enum ToolchainError {
    GleamSpawn {
        gleam_path: PathBuf,
        source: Error,
    },
    TypeCheck {
        diagnostics: String,
    },
    DependencyLayer {
        diagnostics: String,
    },
    Packaging(PackagingError),
    Io {
        path: PathBuf,
        source: Error,
    },
    InvalidProject {
        message: String,
    },
}
Expand description

Failures produced while compiling, type-checking, and packaging Gleam workflow source through the external gleam binary.

Variants§

§

GleamSpawn

The configured gleam binary could not be spawned (not found on the configured path, not executable, or the OS refused the process).

This is an operator-configuration fault, never a caller-correctable source error: it names the path that was invoked.

Fields

§gleam_path: PathBuf

The gleam binary path that could not be spawned.

§source: Error

The underlying spawn failure reported by the OS.

§

TypeCheck

gleam build exited non-zero: the submitted source did not compile or type-check. The captured compiler output travels back verbatim so the author sees the real type error inline.

No .aion is produced and no partial package is returned on this path.

Fields

§diagnostics: String

The verbatim gleam build diagnostics (stderr, with any stdout appended) — the inline type error.

§

DependencyLayer

gleam exited non-zero from inside its own dependency layer — a fetch, a Hex API call, unpacking a downloaded tarball, or a version solve that could not reach the registry.

🔴 The submitted source was never compiled, so nothing has been established about it. This variant exists because every such failure used to be reported as Self::TypeCheck, which is a structured claim that type-checking happened and produced diagnostics — telling an author their code failed to type-check when a registry was unreachable. The wording was not the defect; the variant was (#125).

Callers must not present this as a source error. It is transient, it is the operator’s or the network’s to fix, and it is worth retrying.

Fields

§diagnostics: String

The verbatim gleam output (stderr, with any stdout appended) naming the registry failure.

§

Packaging(PackagingError)

The submitted source compiled and type-checked, but assembling the .aion archive from the built project failed.

§

Io

A filesystem operation against the project root failed (reading the descriptor, writing the submitted source, or resolving a path).

Fields

§path: PathBuf

The path the failing operation targeted.

§source: Error

The underlying I/O failure.

§

InvalidProject

The project root is not a usable Gleam workflow project, or a request field was malformed before any build ran (no gleam.toml, no workflow.toml, an entry module that escapes the project src/ directory, or an entry module name that is not a safe logical name).

Fields

§message: String

Human-readable description of why the project or request was rejected, naming the offending field or file.

Trait Implementations§

Source§

impl Debug for ToolchainError

Source§

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

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

impl Display for ToolchainError

Source§

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

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

impl Error for ToolchainError

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<PackagingError> for ToolchainError

Source§

fn from(source: PackagingError) -> 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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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 = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more