#[non_exhaustive]pub enum BindError {
TooMany {
item: usize,
},
PositionalAfterNamed {
item: usize,
},
UnknownName {
item: usize,
},
Duplicate {
item: usize,
},
Missing {
param: usize,
},
}Expand description
Why a dynamic call’s arguments do not bind (ParamList::bind). A VM
raises ArgumentError (E0114) for every variant; the variant is the
detail a diagnostic can show.
§Examples
use bytecode_lang::{ArgItem, BindError, ModuleBuilder, ParamList};
let module = ModuleBuilder::new().finish().unwrap();
let none = ParamList::new(vec![]);
assert_eq!(none.bind(&module, &[ArgItem::Positional]), Err(BindError::TooMany { item: 0 }));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.
TooMany
A positional argument with no parameter to take it.
PositionalAfterNamed
A positional argument after a named one (PHP’s “cannot use positional argument after named argument”).
UnknownName
A named argument no parameter takes.
Duplicate
A named argument for a parameter already filled, or a name repeated in a rest collection.
Missing
A parameter without default received nothing.
Trait Implementations§
impl Copy for BindError
impl Eq for BindError
Source§impl Error for BindError
impl Error for BindError
1.30.0 · 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()
impl StructuralPartialEq for BindError
Auto Trait Implementations§
impl Freeze for BindError
impl RefUnwindSafe for BindError
impl Send for BindError
impl Sync for BindError
impl Unpin for BindError
impl UnsafeUnpin for BindError
impl UnwindSafe for BindError
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
Mutably borrows from an owned value. Read more