pub enum RuntimeError {
Show 20 variants
TypeError(String),
UndefinedVariable {
name: String,
},
DivisionByZero,
IntOverflow,
IndexOutOfBounds {
index: i64,
len: usize,
},
ListIndexAbort {
op: &'static str,
index: i64,
len: usize,
},
FieldNotFound {
field: String,
type_name: String,
},
NotCallable {
value: String,
},
ArityMismatch {
expected: usize,
got: usize,
},
Propagated(Box<Value>),
IntParseFailed(String),
FloatParseFailed(String),
Return(Box<Value>),
Break(Option<Box<Value>>),
Continue,
Unreachable,
MatchFailed,
NoEffectHandler {
effect: String,
},
NotImplemented(String),
AssertionFailed(String),
}Expand description
An error that can occur during Bock program evaluation.
Three variants (Return, Break, Continue) are control-flow signals
rather than true errors; they are propagated up through eval_expr and
caught at the appropriate statement handler (function body, loop body).
Variants§
TypeError(String)
UndefinedVariable
DivisionByZero
IntOverflow
IndexOutOfBounds
ListIndexAbort
DQ30 (§18.3 / §10.5): an in-place List mutator
(remove_at/insert/set) was called with an out-of-bounds index —
a violated index contract, surfaced as a runtime abort. The message is
the normalized cross-target form List.<op>: index <i> out of bounds (len <n>), matching the synthesized js/ts/python/go aborts (R11
interpreter parity).
FieldNotFound
NotCallable
ArityMismatch
Propagated(Box<Value>)
Raised when ? is applied to None or Err(e) (§7.10). Carries the
whole propagating value — Value::Optional(None) or
Value::Result(Err(e)) — and is caught at the enclosing
function-call boundary (call_closure / run_method_body), where
it becomes the function’s return value: the caller observes a normal
Result/Optional, exactly as the compiled targets early-return it.
Like Return/Break/Continue, this is a control-flow signal, not a
true error; it only surfaces as a runtime error if ? executes outside
any function boundary (e.g. a top-level REPL expression).
IntParseFailed(String)
FloatParseFailed(String)
Return(Box<Value>)
Carries the return value from a return expression.
Break(Option<Box<Value>>)
Carries an optional break value from a break expression.
Continue
Signals continue inside a loop.
Unreachable
MatchFailed
NoEffectHandler
NotImplemented(String)
AssertionFailed(String)
Raised when a test assertion (e.g., expect(x).to_equal(y)) fails.
Trait Implementations§
Source§impl Debug for RuntimeError
impl Debug for RuntimeError
Source§impl Display for RuntimeError
impl Display for RuntimeError
Source§impl Error for RuntimeError
impl Error for RuntimeError
1.30.0 · 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()
Source§impl PartialEq for RuntimeError
impl PartialEq for RuntimeError
Source§fn eq(&self, other: &RuntimeError) -> bool
fn eq(&self, other: &RuntimeError) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for RuntimeError
Auto Trait Implementations§
impl !RefUnwindSafe for RuntimeError
impl !UnwindSafe for RuntimeError
impl Freeze for RuntimeError
impl Send for RuntimeError
impl Sync for RuntimeError
impl Unpin for RuntimeError
impl UnsafeUnpin for RuntimeError
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> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);