Struct artichoke_backend::Artichoke

source ·
pub struct Artichoke {
    pub mrb: NonNull<mrb_state>,
    pub state: Option<Box<State>>,
}
Expand description

Interpreter instance.

Functionality is added to the interpreter via traits, for example, garbage collection or eval.

Fields§

§mrb: NonNull<mrb_state>

Underlying mruby interpreter.

This is an owned reference to the interpreter via a mutable pointer.

§state: Option<Box<State>>

Interpreter state.

This field is an Option because the State is moved in and out of the Artichoke struct as the call graph crosses between Rust and C and C to Rust.

Implementations§

source§

impl Artichoke

source

pub const fn new(mrb: NonNull<mrb_state>, state: Box<State>) -> Self

Create a new interpreter from an underlying mrb and a State.

source

pub fn protect(&mut self, value: Value) -> Value

Prevent the given value from being garbage collected.

Calls sys::mrb_gc_protect on this value which adds it to the GC arena. This object will remain in the arena until ArenaIndex::restore restores the arena to an index before this call to protect.

source

pub unsafe fn with_ffi_boundary<F, T>( &mut self, func: F ) -> Result<T, InterpreterExtractError>
where F: FnOnce(*mut mrb_state) -> T,

Execute a a closure by moving the State into the mrb instance.

This method prepares this interpreter to cross an FFI boundary. When the Artichoke implementation calls mruby FFI functions, the State must be moved into the sys::mrb_state userdata pointer.

§Safety

This method moves the State out of this instance into the mrb instance. During this function’s execution, this instance may be partially initialized.

This function is only safe to call if the closure only calls FFI functions that use a raw *mut sys::mrb_state.

source

pub unsafe fn into_raw(interp: Self) -> *mut mrb_state

Consume an interpreter and return the pointer to the underlying sys::mrb_state.

This function does not free any interpreter resources. Its intended use is to prepare the interpreter to cross over an FFI boundary.

This is an associated function and must be called as Artichoke::into_raw(interp).

§Safety

After calling this function, the caller is responsible for properly freeing the memory occupied by the interpreter heap. The easiest way to do this is to call ffi::from_user_data with the returned pointer and then call Artichoke::close.

source

pub fn close(self)

Consume an interpreter and free all live objects.

source§

impl Artichoke

source

pub fn lookup_symbol_with_trailing_nul( &self, symbol: u32 ) -> Result<Option<&[u8]>, Error>

source

pub fn intern_bytes_with_trailing_nul<T>( &mut self, bytes: T ) -> Result<u32, Error>
where T: Into<Cow<'static, [u8]>>,

source

pub fn check_interned_bytes_with_trailing_nul( &self, bytes: &[u8] ) -> Result<Option<u32>, Error>

Trait Implementations§

source§

impl ClassRegistry for Artichoke

§

type Value = Value

Concrete value type for boxed Ruby values.
§

type Error = Error

Concrete error type for errors encountered when manipulating the class registry.
§

type Spec = Spec

Type representing a class specification.
source§

fn def_class<T>(&mut self, spec: Self::Spec) -> Result<(), Self::Error>
where T: Any,

Create a class definition bound to a Rust type T. Read more
source§

fn class_spec<T>(&self) -> Result<Option<&Self::Spec>, Self::Error>
where T: Any,

Retrieve a class definition from the state bound to Rust type T. Read more
source§

fn class_of<T>(&mut self) -> Result<Option<Self::Value>, Self::Error>
where T: Any,

Retrieve a boxed Ruby value containing a Class object for the Class bound to Rust type T. Read more
source§

fn new_instance<T>( &mut self, args: &[Self::Value] ) -> Result<Option<Self::Value>, Self::Error>
where T: Any,

Create a new instance of the class bound to the Rust type T. Read more
source§

fn is_class_defined<T>(&self) -> bool
where T: Any,

Retrieve whether a class definition exists from the state bound to Rust type T. Read more
source§

impl CoerceToNumeric for Artichoke

§

type Value = Value

Concrete type of boxed Ruby value as inputs to coerce functions.
§

type Float = f64

Concrete float type to coerce values into, e.g. f64.
§

type Error = Error

Concrete error type for errors encountered when coercing values.
source§

fn coerce_to_float( &mut self, value: Self::Value ) -> Result<Self::Float, Self::Error>

Coerce the given Ruby value to a Float. Read more
source§

impl Convert<Option<Value>, Value> for Artichoke

source§

fn convert(&self, value: Option<Value>) -> Value

Performs the infallible conversion.
source§

impl Convert<Option<bool>, Value> for Artichoke

source§

fn convert(&self, value: Option<bool>) -> Value

Performs the infallible conversion.
source§

impl Convert<Option<i64>, Value> for Artichoke

source§

fn convert(&self, value: Option<i64>) -> Value

Performs the infallible conversion.
source§

impl Convert<Value, Option<Value>> for Artichoke

source§

fn convert(&self, value: Value) -> Option<Value>

Performs the infallible conversion.
source§

impl Convert<Value, Value> for Artichoke

source§

fn convert(&self, value: Value) -> Value

Performs the infallible conversion.
source§

impl Convert<bool, Value> for Artichoke

source§

fn convert(&self, value: bool) -> Value

Performs the infallible conversion.
source§

impl Convert<i16, Value> for Artichoke

source§

fn convert(&self, value: i16) -> Value

Performs the infallible conversion.
source§

impl Convert<i32, Value> for Artichoke

source§

fn convert(&self, value: i32) -> Value

Performs the infallible conversion.
source§

impl Convert<i64, Value> for Artichoke

source§

fn convert(&self, value: i64) -> Value

Performs the infallible conversion.
source§

impl Convert<i8, Value> for Artichoke

source§

fn convert(&self, value: i8) -> Value

Performs the infallible conversion.
source§

impl Convert<u16, Value> for Artichoke

source§

fn convert(&self, value: u16) -> Value

Performs the infallible conversion.
source§

impl Convert<u32, Value> for Artichoke

source§

fn convert(&self, value: u32) -> Value

Performs the infallible conversion.
source§

impl Convert<u8, Value> for Artichoke

source§

fn convert(&self, value: u8) -> Value

Performs the infallible conversion.
source§

impl ConvertMut<Rand, Value> for Artichoke

source§

fn convert_mut(&mut self, from: Rand) -> Value

Performs the infallible conversion.
source§

impl ConvertMut<Rand, Value> for Artichoke

source§

fn convert_mut(&mut self, from: Rand) -> Value

Performs the infallible conversion.
source§

impl ConvertMut<Value, Options> for Artichoke

source§

fn convert_mut(&mut self, value: Value) -> Options

Performs the infallible conversion.
source§

impl ConvertMut<Value, Value> for Artichoke

source§

fn convert_mut(&mut self, value: Value) -> Value

Performs the infallible conversion.
source§

impl ConvertMut<f64, Value> for Artichoke

source§

fn convert_mut(&mut self, value: f64) -> Value

Performs the infallible conversion.
source§

impl Debug for Artichoke

§

type Value = Value

Concrete type for return values from eval.
source§

fn inspect_type_name_for_value(&mut self, value: Self::Value) -> &str

Return a name for the given value’s type that is suitable for using in an Exception message. Read more
source§

fn class_name_for_value(&mut self, value: Self::Value) -> &str

Return the class name for the given value’s type. Read more
source§

impl Debug for Artichoke

source§

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

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

impl DefineConstant for Artichoke

§

type Value = Value

Concrete type for Ruby values.
§

type Error = Error

Concrete error type for fallible operations.
source§

fn define_global_constant( &mut self, constant: &str, value: Self::Value ) -> Result<(), Self::Error>

Define a global constant. Read more
source§

fn define_class_constant<T>( &mut self, constant: &str, value: Self::Value ) -> Result<(), Self::Error>
where T: 'static,

Define a class constant. Read more
source§

fn define_module_constant<T>( &mut self, constant: &str, value: Self::Value ) -> Result<(), Self::Error>
where T: 'static,

Define a module constant. Read more
source§

impl Eval for Artichoke

§

type Value = Value

Concrete type for return values from eval.
§

type Error = Error

Concrete error type for eval functions.
source§

fn eval(&mut self, code: &[u8]) -> Result<Self::Value, Self::Error>

Eval code on the Artichoke interpreter using the current parser context. Read more
source§

fn eval_os_str(&mut self, code: &OsStr) -> Result<Self::Value, Self::Error>

Eval code on the Artichoke interpreter using the current parser context when given code as an OsStr. Read more
source§

fn eval_file(&mut self, file: &Path) -> Result<Self::Value, Self::Error>

Eval code on the Artichoke interpreter using a new file Context given a file path. Read more
source§

impl Globals for Artichoke

source§

fn unset_global_variable<T>(&mut self, name: T) -> Result<(), Self::Error>
where T: Into<Cow<'static, [u8]>>,

Unset global variable pointed to by name.

Unsetting a global variable removes the name from the global storage table. Unset globals resolve to nil in the Ruby VM.

Unsetting a global that is currently unset is a no-op.

§Errors

If the name is not a valid global name, an error is returned.

§

type Value = Value

Concrete value type for global variables.
§

type Error = Error

Concrete error type for failures manipulating global variables.
source§

fn set_global_variable<T>( &mut self, name: T, value: &Self::Value ) -> Result<(), Self::Error>
where T: Into<Cow<'static, [u8]>>,

Set global variable pointed to by name to the given Ruby value. Read more
source§

fn get_global_variable<T>( &mut self, name: T ) -> Result<Option<Self::Value>, Self::Error>
where T: Into<Cow<'static, [u8]>>,

Get the Ruby value stored in the global variable pointed to by name. Read more
source§

impl Hash for Artichoke

§

type Error = Error

Concrete error type for errors encountered when retrieving the interpreter’s global BuildHasher.
§

type GlobalBuildHasher = RandomState

Concrete BuildHasher type which is global to the interpreter.
source§

fn global_build_hasher( &mut self ) -> Result<&Self::GlobalBuildHasher, Self::Error>

Retrieve the interpreter’s global BuildHasher. Read more
source§

impl Intern for Artichoke

§

type Symbol = u32

Concrete type for symbol identifiers. Read more
§

type Error = Error

Concrete type for errors returned while interning symbols.
source§

const SYMBOL_RANGE_START: Self::Symbol = {transmute(0x00000001): <artichoke::Artichoke as artichoke_core::intern::Intern>::Symbol}

The initial Symbol index returned by the interner. Read more
source§

fn intern_bytes<T>(&mut self, bytes: T) -> Result<Self::Symbol, Self::Error>
where T: Into<Cow<'static, [u8]>>,

Store an immutable byte string for the life of the interpreter. Read more
source§

fn check_interned_bytes( &self, bytes: &[u8] ) -> Result<Option<Self::Symbol>, Self::Error>

Check if a byte string is already interned and return its symbol identifier. Return None if the string has not been interned before. Read more
source§

fn lookup_symbol( &self, symbol: Self::Symbol ) -> Result<Option<&[u8]>, Self::Error>

Retrieve the original byte content of an interned byte string. Read more
source§

fn symbol_count(&self) -> usize

Retrieve the number of unique strings interned. Read more
source§

fn intern_string<T>(&mut self, symbol: T) -> Result<Self::Symbol, Self::Error>
where T: Into<Cow<'static, str>>,

Store an immutable string for the life of the interpreter. Read more
source§

fn check_interned_string( &self, symbol: &str ) -> Result<Option<Self::Symbol>, Self::Error>

Check if a string is already interned and return its symbol identifier. Return None if the string has not been interned before. Read more
source§

impl Io for Artichoke

source§

fn print(&mut self, message: &[u8]) -> Result<(), Self::Error>

Writes the given bytes to the interpreter stdout stream.

This implementation delegates to the underlying output strategy.

§Errors

If the output stream encounters an error, an error is returned.

source§

fn puts(&mut self, message: &[u8]) -> Result<(), Self::Error>

Writes the given bytes to the interpreter stdout stream followed by a newline.

This implementation delegates to the underlying output strategy.

§Errors

If the output stream encounters an error, an error is returned.

§

type Error = Error

Concrete error type for errors encountered when reading and writing.
source§

impl LoadSources for Artichoke

§

type Artichoke = Artichoke

Concrete type for interpreter.
§

type Error = Error

Concrete type for errors returned from file system IO.
§

type Exception = Error

Concrete type for errors returned by File::require.
source§

fn def_file_for_type<P, T>(&mut self, path: P) -> Result<(), Self::Error>
where P: AsRef<Path>, T: File<Artichoke = Self::Artichoke, Error = Self::Exception>,

Add a Rust extension hook to the virtual file system. A stub Ruby file is added to the file system and File::require will dynamically define Ruby items when invoked via Kernel#require. Read more
source§

fn def_rb_source_file<P, T>( &mut self, path: P, contents: T ) -> Result<(), Self::Error>
where P: AsRef<Path>, T: Into<Cow<'static, [u8]>>,

Add a Ruby source to the virtual file system. Read more
source§

fn resolve_source_path<P>( &self, path: P ) -> Result<Option<Vec<u8>>, Self::Error>
where P: AsRef<Path>,

Test for a source file at a path and return the absolute path of the resolved file. Read more
source§

fn source_is_file<P>(&self, path: P) -> Result<bool, Self::Error>
where P: AsRef<Path>,

Test for a source file at a path. Read more
source§

fn load_source<P>(&mut self, path: P) -> Result<Loaded, Self::Error>
where P: AsRef<Path>,

Load source located at the given path. Read more
source§

fn require_source<P>(&mut self, path: P) -> Result<Required, Self::Error>
where P: AsRef<Path>,

Require source located at the given path. Read more
source§

fn read_source_file_contents<P>( &self, path: P ) -> Result<Cow<'_, [u8]>, Self::Error>
where P: AsRef<Path>,

Retrieve file contents for a source file. Read more
source§

impl ModuleRegistry for Artichoke

§

type Value = Value

Concrete value type for boxed Ruby values.
§

type Error = Error

Concrete error type for errors encountered when manipulating the module registry.
§

type Spec = Spec

Type representing a module specification.
source§

fn def_module<T>(&mut self, spec: Self::Spec) -> Result<(), Self::Error>
where T: Any,

Create a module definition bound to a Rust type T. Read more
source§

fn module_spec<T>(&self) -> Result<Option<&Self::Spec>, Self::Error>
where T: Any,

Retrieve a module definition from the interpreter bound to Rust type T. Read more
source§

fn module_of<T>(&mut self) -> Result<Option<Self::Value>, Self::Error>
where T: Any,

Retrieve a boxed Ruby value containing a Module object for the Module bound to Rust type T. Read more
source§

fn is_module_defined<T>(&self) -> bool
where T: Any,

Retrieve whether a module definition exists from the interpreter bound to Rust type T Read more
source§

impl MrbGarbageCollection for Artichoke

source§

fn create_arena_savepoint( &mut self ) -> Result<ArenaIndex<'_>, ArenaSavepointError>

Create a savepoint in the GC arena. Read more
source§

fn live_object_count(&mut self) -> usize

Retrieve the number of live objects on the interpreter heap. Read more
source§

fn mark_value(&mut self, value: &Value) -> Result<(), Error>

Mark a Value as reachable in the mruby garbage collector.
source§

fn incremental_gc(&mut self) -> Result<(), Error>

Perform an incremental garbage collection. Read more
source§

fn full_gc(&mut self) -> Result<(), Error>

Perform a full garbage collection. Read more
source§

fn enable_gc(&mut self) -> Result<State, Error>

Enable garbage collection. Read more
source§

fn disable_gc(&mut self) -> Result<State, Error>

Disable garbage collection. Read more
source§

impl Parser for Artichoke

§

type Context = Context

Concrete type for parser context.
§

type Error = Error

Error type for Parser APIs.
source§

fn reset_parser(&mut self) -> Result<(), Self::Error>

Reset parser state to initial values. Read more
source§

fn fetch_lineno(&self) -> Result<usize, Self::Error>

Fetch the current line number from the parser state. Read more
source§

fn add_fetch_lineno(&mut self, val: usize) -> Result<usize, Self::Error>

Increment line number and return the new value. Read more
source§

fn push_context(&mut self, context: Self::Context) -> Result<(), Self::Error>

Set the currently active context by modifying the parser stack. Read more
source§

fn pop_context(&mut self) -> Result<Option<Self::Context>, Self::Error>

Remove the current active context and return it. Read more
source§

fn peek_context(&self) -> Result<Option<&Self::Context>, Self::Error>

Return a reference to the currently active context. Read more
source§

impl Prng for Artichoke

Available on crate feature core-random only.
§

type Error = Error

Concrete type for errors when retrieving the pseudorandom number generator.
§

type Prng = Random

Concrete type for the interpreter pseudorandom number generator.
source§

fn prng(&self) -> Result<&Self::Prng, Self::Error>

Return a shared reference to the interpreter pseudorandom number generator. Read more
source§

fn prng_mut(&mut self) -> Result<&mut Self::Prng, Self::Error>

Return a mutable reference to the interpreter pseudorandom number generator. Read more
source§

impl Regexp for Artichoke

Available on crate feature core-regexp only.
§

type Error = InterpreterExtractError

Concrete error type for errors encountered when manipulating Regexp state.
source§

fn capture_group_globals(&self) -> Result<usize, Self::Error>

Retrieve the current number of set Regexp capture group global variables. Read more
source§

fn set_capture_group_globals(&mut self, count: usize) -> Result<(), Self::Error>

Set the current number of set Regexp capture group global variables. Read more
source§

fn clear_regexp(&mut self) -> Result<(), Self::Error>

Clear all Regexp state. Read more
source§

impl TopSelf for Artichoke

§

type Value = Value

Concrete Value type.
source§

fn top_self(&mut self) -> Value

Return a Value-wrapped reference to “top self”. Read more
source§

impl TryConvert<Option<usize>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert(&self, value: Option<usize>) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl<T, U> TryConvert<T, U> for Artichoke
where Artichoke: Convert<T, U>,

Provide a fallible converter for types that implement an infallible conversion.

source§

fn try_convert(&self, value: T) -> Result<U, Self::Error>

Blanket implementation that always succeeds by delegating to Convert::convert.

§

type Error = Error

Error type for failed conversions.
source§

impl TryConvert<Value, Option<bool>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert(&self, value: Value) -> Result<Option<bool>, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvert<Value, Option<i64>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert(&self, value: Value) -> Result<Option<i64>, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvert<Value, bool> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert(&self, value: Value) -> Result<bool, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvert<Value, f64> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert(&self, value: Value) -> Result<f64, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvert<Value, i64> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert(&self, value: Value) -> Result<i64, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvert<Value, u32> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert(&self, value: Value) -> Result<u32, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvert<Value, usize> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert(&self, value: Value) -> Result<usize, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvert<isize, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert(&self, value: isize) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvert<u64, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert(&self, value: u64) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvert<usize, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert(&self, value: usize) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<&[&[u8]], Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: &[&[u8]]) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<&[&str], Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: &[&str]) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<&[Option<&[u8]>], Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: &[Option<&[u8]>] ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<&[Option<&str>], Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: &[Option<&str>] ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<&[Option<Value>], Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: &[Option<Value>] ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<&[Option<Vec<u8>>], Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: &[Option<Vec<u8>>] ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<&[String], Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: &[String]) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<&[Value], Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: &[Value]) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<&[Vec<u8>], Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: &[Vec<u8>]) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<&[i64], Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: &[i64]) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<&[u8], Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: &[u8]) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<&OsStr, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: &OsStr) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<&str, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: &str) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<(Option<Value>, Option<Value>), (Option<Options>, Option<Encoding>)> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: (Option<Value>, Option<Value>) ) -> Result<(Option<Options>, Option<Encoding>), Self::Error>

Performs the fallible conversion. Read more
source§

impl<'a> TryConvertMut<Cow<'a, [u8]>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Cow<'a, [u8]> ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl<'a> TryConvertMut<Cow<'a, OsStr>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Cow<'a, OsStr> ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl<'a> TryConvertMut<Cow<'a, str>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Cow<'a, str>) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<HashMap<Vec<u8>, Vec<u8>>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: HashMap<Vec<u8>, Vec<u8>> ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Option<&[u8]>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Option<&[u8]> ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Option<&str>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Option<&str>) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Option<HashMap<Vec<u8>, Option<Vec<u8>>>>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Option<HashMap<Vec<u8>, Option<Vec<u8>>>> ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Option<String>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Option<String> ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Option<Value>, Max> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, max: Option<Value>) -> Result<Max, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Option<Value>, Max> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, max: Option<Value>) -> Result<Max, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Option<Vec<u8>>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Option<Vec<u8>> ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<OsString, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: OsString) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<String, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: String) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl<T, U> TryConvertMut<T, U> for Artichoke
where Artichoke: ConvertMut<T, U>,

Provide a mutable fallible converter for types that implement an infallible conversion.

source§

fn try_convert_mut(&mut self, value: T) -> Result<U, Self::Error>

Blanket implementation that always succeeds by delegating to Convert::convert.

§

type Error = Error

Error type for failed conversions.
source§

impl<'a> TryConvertMut<Value, &'a [u8]> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Value) -> Result<&'a [u8], Self::Error>

Performs the fallible conversion. Read more
source§

impl<'a> TryConvertMut<Value, &'a str> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Value) -> Result<&'a str, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Value, Encoding> for Artichoke

§

type Error = InvalidEncodingError

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Value) -> Result<Encoding, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Value, Max> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, max: Value) -> Result<Max, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Value, Max> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, max: Value) -> Result<Max, Self::Error>

Performs the fallible conversion. Read more
source§

impl<'a> TryConvertMut<Value, Option<&'a [u8]>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Value ) -> Result<Option<&'a [u8]>, Self::Error>

Performs the fallible conversion. Read more
source§

impl<'a> TryConvertMut<Value, Option<&'a str>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Value ) -> Result<Option<&'a str>, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Value, Option<Offset>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, options: Value ) -> Result<Option<Offset>, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Value, Option<String>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Value ) -> Result<Option<String>, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Value, Option<Vec<u8>>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Value ) -> Result<Option<Vec<u8>>, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Value, String> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Value) -> Result<String, Self::Error>

Performs the fallible conversion. Read more
source§

impl<'a> TryConvertMut<Value, Vec<&'a [u8]>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Value ) -> Result<Vec<&'a [u8]>, Self::Error>

Performs the fallible conversion. Read more
source§

impl<'a> TryConvertMut<Value, Vec<&'a str>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Value) -> Result<Vec<&'a str>, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Value, Vec<(Value, Value)>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Value ) -> Result<Vec<(Value, Value)>, Self::Error>

Performs the fallible conversion. Read more
source§

impl<'a> TryConvertMut<Value, Vec<Option<&'a [u8]>>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Value ) -> Result<Vec<Option<&'a [u8]>>, Self::Error>

Performs the fallible conversion. Read more
source§

impl<'a> TryConvertMut<Value, Vec<Option<&'a str>>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Value ) -> Result<Vec<Option<&'a str>>, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Value, Vec<Option<String>>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Value ) -> Result<Vec<Option<String>>, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Value, Vec<Option<Vec<u8>>>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Value ) -> Result<Vec<Option<Vec<u8>>>, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Value, Vec<String>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Value) -> Result<Vec<String>, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Value, Vec<Value>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Value) -> Result<Vec<Value>, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Value, Vec<Vec<u8>>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Value) -> Result<Vec<Vec<u8>>, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Value, Vec<i64>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Value) -> Result<Vec<i64>, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Value, Vec<u8>> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Value) -> Result<Vec<u8>, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Vec<&[u8]>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Vec<&[u8]>) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Vec<&str>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Vec<&str>) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Vec<(Value, Value)>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Vec<(Value, Value)> ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Vec<(Vec<u8>, Vec<i64>)>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Vec<(Vec<u8>, Vec<i64>)> ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Vec<Option<&[u8]>>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Vec<Option<&[u8]>> ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Vec<Option<&str>>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Vec<Option<&str>> ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Vec<Option<Vec<u8>>>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Vec<Option<Vec<u8>>> ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Vec<String>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Vec<String>) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Vec<Value>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Vec<Value>) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Vec<Vec<Option<&[u8]>>>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Vec<Vec<Option<&[u8]>>> ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Vec<Vec<Option<&str>>>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Vec<Vec<Option<&str>>> ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Vec<Vec<Option<Vec<u8>>>>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut( &mut self, value: Vec<Vec<Option<Vec<u8>>>> ) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Vec<Vec<u8>>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Vec<Vec<u8>>) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Vec<i64>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Vec<i64>) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl TryConvertMut<Vec<u8>, Value> for Artichoke

§

type Error = Error

Error type for failed conversions.
source§

fn try_convert_mut(&mut self, value: Vec<u8>) -> Result<Value, Self::Error>

Performs the fallible conversion. Read more
source§

impl Warn for Artichoke

§

type Error = Error

Concrete error type for errors encountered when outputting warnings.
source§

fn warn(&mut self, message: &[u8]) -> Result<(), Self::Error>

Emit a warning message using Warning#warn. Read more

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

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> InternerAllSymbols for T
where T: Intern<Symbol = U>, U: Copy + Into<u32>,

source§

fn all_symbols(&self) -> AllSymbols

Returns an iterator that returns all symbol identifiers stored in an interner as Symbols. 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, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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.