pub enum CompilationError {
UnsupportedInstruction {
reason: String,
backtrace: BackTrace,
},
Generic {
reason: String,
backtrace: BackTrace,
},
DevicePoisoned(DevicePoison),
Validation {
reason: String,
backtrace: BackTrace,
},
ExpansionPanicked {
kernel: String,
message: String,
backtrace: BackTrace,
},
}Expand description
JIT compilation error.
Variants§
UnsupportedInstruction
An instruction isn’t supported.
Generic
A generic compilation error.
DevicePoisoned(DevicePoison)
The device was poisoned before the compiled kernel could be loaded onto
it. See ServerError::DevicePoisoned.
Validation
A generic compilation error.
ExpansionPanicked
The kernel’s own code panicked while it expanded, an assertion in it included: a defect in the kernel, where every other variant is a compiler turning it down.
Implementations§
Source§impl CompilationError
impl CompilationError
Sourcepub fn is_device_poisoned(&self) -> bool
pub fn is_device_poisoned(&self) -> bool
Whether the device that emitted the error is poisoned.
Sourcepub fn is_refusal(&self) -> bool
pub fn is_refusal(&self) -> bool
Whether this is the kernel being turned down, a candidate to drop or a case to skip, rather than a defect in it to report or something going wrong while building it.
Every variant is, except two:
- a kernel that panicked while it expanded: a kernel declines a configuration by returning an error, so a panic is a bug that skipping would hide;
- a device that died before the module could load.
Trait Implementations§
Source§impl Clone for CompilationError
impl Clone for CompilationError
Source§impl Debug for CompilationError
impl Debug for CompilationError
Source§impl<'de> Deserialize<'de> for CompilationError
impl<'de> Deserialize<'de> for CompilationError
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for CompilationError
impl Display for CompilationError
Source§impl Error for CompilationError
impl Error for CompilationError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
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
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl From<CompilationError> for LaunchError
impl From<CompilationError> for LaunchError
Source§fn from(source: CompilationError) -> Self
fn from(source: CompilationError) -> Self
Converts to this type from the input type.
Source§impl From<DevicePoison> for CompilationError
impl From<DevicePoison> for CompilationError
Source§fn from(source: DevicePoison) -> Self
fn from(source: DevicePoison) -> Self
Converts to this type from the input type.
Source§impl From<Error> for CompilationError
impl From<Error> for CompilationError
Auto Trait Implementations§
impl Freeze for CompilationError
impl RefUnwindSafe for CompilationError
impl Send for CompilationError
impl Sync for CompilationError
impl Unpin for CompilationError
impl UnsafeUnpin for CompilationError
impl UnwindSafe for CompilationError
Blanket Implementations§
impl<T> AnyError for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<T> ErasedDestructor for Twhere
T: 'static,
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> ⓘ
Converts
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> ⓘ
Converts
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