pub enum Value {
Show 16 variants
Invalid,
Nil,
Bool(bool),
Number(f64),
String(RcStr),
List(Rc<List>),
Set(Rc<Set>),
Map(Rc<Map>),
Table(Rc<Table>),
Function(Rc<Function>),
NativeFunction(Rc<NativeFunction>),
Generator(Rc<RefCell<Generator>>),
NativeGenerator(Rc<RefCell<NativeGenerator>>),
Class(Rc<Class>),
Module(Rc<Module>),
Handle(Rc<HandleData>),
}
Variants§
Invalid
Nil
Bool(bool)
Number(f64)
String(RcStr)
List(Rc<List>)
Set(Rc<Set>)
Map(Rc<Map>)
Table(Rc<Table>)
Function(Rc<Function>)
NativeFunction(Rc<NativeFunction>)
Generator(Rc<RefCell<Generator>>)
NativeGenerator(Rc<RefCell<NativeGenerator>>)
Class(Rc<Class>)
Module(Rc<Module>)
Handle(Rc<HandleData>)
Implementations§
Source§impl Value
impl Value
pub fn f64(&self) -> Result<f64, Error>
pub fn f32(&self) -> Result<f32, Error>
pub fn usize(&self) -> Result<usize, Error>
pub fn u64(&self) -> Result<u64, Error>
pub fn u32(&self) -> Result<u32, Error>
pub fn u16(&self) -> Result<u16, Error>
pub fn u8(&self) -> Result<u8, Error>
pub fn isize(&self) -> Result<isize, Error>
pub fn i64(&self) -> Result<i64, Error>
pub fn i32(&self) -> Result<i32, Error>
pub fn i16(&self) -> Result<i16, Error>
pub fn i8(&self) -> Result<i8, Error>
Source§impl Value
Methods for dealing with unpacking values in other values
impl Value
Methods for dealing with unpacking values in other values
the easy_* variants are those where a Globals context is not used, but can only unpack List, Set and Map values.
Some of these methods are kind of redundant with many of the TryFrom forms. Some of these redundant unpack methods may be removed in the future.
pub fn unpack_into_set( self, globals: &mut Globals, ) -> Result<IndexSet<Key>, Error>
pub fn unpack_into_map( self, globals: &mut Globals, ) -> Result<IndexMap<Key, Value>, Error>
pub fn unpack(self, globals: &mut Globals) -> Result<Vec<Value>, Error>
pub fn unpack_into<C, T, E>(self, globals: &mut Globals) -> Result<C, Error>
pub fn easy_unpack(self) -> Result<Vec<Value>, Error>
pub fn easy_unpack2(self) -> Result<[Value; 2], Error>
pub fn easy_unpack3(self) -> Result<[Value; 3], Error>
pub fn easy_unpack4(self) -> Result<[Value; 4], Error>
pub fn unpack_keyval(self, globals: &mut Globals) -> Result<(Key, Value), Error>
pub fn unpack2(self, globals: &mut Globals) -> Result<[Value; 2], Error>
pub fn unpack3(self, globals: &mut Globals) -> Result<[Value; 3], Error>
pub fn unpack4(self, globals: &mut Globals) -> Result<[Value; 4], Error>
Source§impl Value
impl Value
Sourcepub fn convert<T>(self, globals: &mut Globals) -> Result<T, Error>
pub fn convert<T>(self, globals: &mut Globals) -> Result<T, Error>
For converting to a native value into a value of the desired type. If the current value is a handle of the given type, it will either unwrap or clone it. If not, it will try to convert it with the ConvertValue trait
pub fn to_xref<T>(&self, globals: &mut Globals) -> Result<XRef<'_, T>, Error>where
T: Any + ConvertValue,
pub fn to_xref_mut<T>(
&self,
globals: &mut Globals,
) -> Result<XRefMut<'_, T>, Error>where
T: Any + ConvertValue,
Source§impl Value
impl Value
pub fn truthy(&self) -> bool
pub fn debug_typename(&self) -> RcStr
pub fn is(&self, other: &Value) -> bool
pub fn lt(&self, other: &Value) -> Result<bool, Error>
pub fn is_nil(&self) -> bool
pub fn bool(&self) -> Result<bool, Error>
pub fn number(&self) -> Result<f64, Error>
pub fn string(&self) -> Result<&RcStr, Error>
pub fn into_string(self) -> Result<RcStr, Error>
pub fn list(&self) -> Result<&Rc<List>, Error>
pub fn into_list(self) -> Result<Rc<List>, Error>
pub fn set(&self) -> Result<&Rc<Set>, Error>
pub fn into_set(self) -> Result<Rc<Set>, Error>
pub fn map(&self) -> Result<&Rc<Map>, Error>
pub fn into_map(self) -> Result<Rc<Map>, Error>
pub fn function(&self) -> Result<&Rc<Function>, Error>
pub fn is_function(&self) -> bool
pub fn into_function(self) -> Result<Rc<Function>, Error>
pub fn native_function(&self) -> Result<&Rc<NativeFunction>, Error>
pub fn is_native_function(&self) -> bool
pub fn into_native_function(self) -> Result<Rc<NativeFunction>, Error>
pub fn class(&self) -> Result<&Rc<Class>, Error>
pub fn into_class(self) -> Result<Rc<Class>, Error>
pub fn module(&self) -> Result<&Rc<Module>, Error>
pub fn into_module(self) -> Result<Rc<Module>, Error>
pub fn into_handle<T>(self) -> Result<Handle<T>, Error>where
T: Any,
pub fn is_handle<T>(&self) -> boolwhere
T: Any,
pub fn unwrap_handle<T>(self) -> Result<T, Error>where
T: Any,
pub fn unwrap_or_clone_handle<T>(self) -> Result<T, Error>
pub fn convert_to_int(self) -> Result<i64, Error>
pub fn convert_to_float(self) -> Result<f64, Error>
pub fn convert_to_rcstr(self) -> RcStr
pub fn unwrap_or_clone_string(self) -> Result<String, Error>
pub fn iter(self, _globals: &mut Globals) -> Result<Value, Error>
pub fn get_class<'a>(&'a self, globals: &'a Globals) -> &'a Rc<Class>
pub fn getattr_opt(&self, attr: &RcStr) -> Option<Value>
pub fn getattr(&self, attr: &RcStr) -> Result<Value, Error>
pub fn getattrs(&self) -> Vec<RcStr>
pub fn setattr(&self, attr: &RcStr, value: Value) -> Result<(), Error>
pub fn apply( &self, globals: &mut Globals, args: Vec<Value>, kwargs: Option<HashMap<RcStr, Value>>, ) -> Result<Value, Error>
pub fn apply_method<M>( &self, globals: &mut Globals, method_name: &M, args: Vec<Value>, kwargs: Option<HashMap<RcStr, Value>>, ) -> Result<Value, Error>
pub fn resume(&self, globals: &mut Globals, arg: Value) -> ResumeResult
pub fn to_index(&self, len: usize) -> Result<usize, Error>
pub fn to_slice_index(&self, len: usize) -> Result<usize, Error>
pub fn to_start_index(&self, len: usize) -> Result<usize, Error>
pub fn to_end_index(&self, len: usize) -> Result<usize, Error>
pub fn getitem( &self, globals: &mut Globals, index: Value, ) -> Result<Value, Error>
pub fn setitem( &self, globals: &mut Globals, index: Value, value: Value, ) -> Result<(), Error>
Trait Implementations§
Source§impl From<NativeFunction> for Value
impl From<NativeFunction> for Value
Source§fn from(f: NativeFunction) -> Value
fn from(f: NativeFunction) -> Value
Converts to this type from the input type.
Source§impl From<NativeGenerator> for Value
impl From<NativeGenerator> for Value
Source§fn from(gen: NativeGenerator) -> Value
fn from(gen: NativeGenerator) -> Value
Converts to this type from the input type.
Source§impl FromIterator<Value> for List
impl FromIterator<Value> for List
Source§impl PartialOrd for Value
impl PartialOrd for Value
impl StructuralPartialEq for Value
Auto Trait Implementations§
impl Freeze for Value
impl !RefUnwindSafe for Value
impl !Send for Value
impl !Sync for Value
impl Unpin for Value
impl !UnwindSafe for Value
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> SetParameter for T
impl<T> SetParameter for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self
from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self
is actually part of its subset T
(and can be converted to it).Source§unsafe fn to_subset_unchecked(&self) -> SS
unsafe fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset
but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self
to the equivalent element of its superset.