#[non_exhaustive]pub enum BuildError {
Io(Error),
}Expand description
Infrastructure failure raised by the library-mode build flow.
Surfaces filesystem I/O against $OUT_DIR, OUT_DIR lookup failures,
and input-validation rejections (malformed program paths) the builder
catches before handing off to the pipeline. Distinct from:
- [
crate::CodegenError] — user-source errors caught during codegen. - [
crate::common::InternalError] — compiler invariant violations that render as “please file a bug” ICEs.
[Diagnostic::is_internal] returns false for every BuildError
variant, so a top-level renderer (e.g. [crate::common::emit_and_exit])
exits with code 1 and omits the bug-report note — the user fixes
their build setup, not their .dl program.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Io(Error)
An io::Error surfaced by the build pipeline. Covers genuine
I/O (writes to $OUT_DIR, OUT_DIR lookup) as well as
input-validation rejections wrapped as
io::ErrorKind::InvalidInput — e.g. a program path with no
usable file stem or non-UTF-8 bytes.
Trait Implementations§
Source§impl Debug for BuildError
impl Debug for BuildError
Source§impl Display for BuildError
impl Display for BuildError
Source§impl Error for BuildError
impl Error for BuildError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for BuildError
impl !RefUnwindSafe for BuildError
impl Send for BuildError
impl Sync for BuildError
impl Unpin for BuildError
impl UnsafeUnpin for BuildError
impl !UnwindSafe for BuildError
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more