Trait artichoke_core::globals::Globals
source · pub trait Globals {
type Value: Value;
type Error;
// Required methods
fn set_global_variable<T>(
&mut self,
name: T,
value: &Self::Value
) -> Result<(), Self::Error>
where T: Into<Cow<'static, [u8]>>;
fn unset_global_variable<T>(&mut self, name: T) -> Result<(), Self::Error>
where T: Into<Cow<'static, [u8]>>;
fn get_global_variable<T>(
&mut self,
name: T
) -> Result<Option<Self::Value>, Self::Error>
where T: Into<Cow<'static, [u8]>>;
}
Expand description
Get and set global variables on an interpreter.
Global variables can be an arbitrary Ruby value. Variable names must start
with $
.
Required Associated Types§
Required Methods§
sourcefn set_global_variable<T>(
&mut self,
name: T,
value: &Self::Value
) -> Result<(), Self::Error>
fn set_global_variable<T>( &mut self, name: T, value: &Self::Value ) -> Result<(), Self::Error>
Set global variable pointed to by name
to the given Ruby value.
Errors
If the name is not a valid global name, an error is returned.
If there is insufficient capacity in the global storage, an error is returned.
sourcefn unset_global_variable<T>(&mut self, name: T) -> Result<(), Self::Error>
fn unset_global_variable<T>(&mut self, name: T) -> Result<(), Self::Error>
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.
sourcefn get_global_variable<T>(
&mut self,
name: T
) -> Result<Option<Self::Value>, Self::Error>
fn get_global_variable<T>( &mut self, name: T ) -> Result<Option<Self::Value>, Self::Error>
Get the Ruby value stored in the global variable pointed to by name
.
Compatibility Notes
Getting a global that is currently may return Ok(None)
even through
a non-existent global resolves to nil
in the Ruby VM. Consult the
documentation on implementations of this trait for implementation-defined
behavior.
Errors
If the name is not a valid global name, an error is returned.