pub enum Value<'gc, C: CustomTypes<S>, S: System<C>> {
Bool(bool),
Number(Number),
Text(Text),
Image(Rc<Image>),
Audio(Rc<Audio>),
Native(Rc<C::NativeValue>),
List(Gc<'gc, RefLock<VecDeque<Value<'gc, C, S>>>>),
Closure(Gc<'gc, RefLock<Closure<'gc, C, S>>>),
Entity(Gc<'gc, RefLock<Entity<'gc, C, S>>>),
}
Expand description
Any primitive value.
Variants§
Bool(bool)
A primitive boolean value.
Number(Number)
A primitive numeric value. Snap! and NetsBlox use 64-bit floating point values for all numbers.
Text(Text)
A primitive text value, which is an immutable reference type.
Image(Rc<Image>)
An image stored as a binary buffer.
Audio(Rc<Audio>)
An audio clip stored as as a binary buffer.
Native(Rc<C::NativeValue>)
A reference to a native object handle produced by System
.
List(Gc<'gc, RefLock<VecDeque<Value<'gc, C, S>>>>)
A primitive list type, which is a mutable reference type.
Closure(Gc<'gc, RefLock<Closure<'gc, C, S>>>)
A closure/lambda function. This contains information about the closure’s bytecode location, parameters, and captures from the parent scope.
Entity(Gc<'gc, RefLock<Entity<'gc, C, S>>>)
A reference to an Entity
in the environment.
Implementations§
Source§impl<'gc, C: CustomTypes<S>, S: System<C>> Value<'gc, C, S>
impl<'gc, C: CustomTypes<S>, S: System<C>> Value<'gc, C, S>
Sourcepub fn to_simple(&self) -> Result<SimpleValue, ToSimpleError<C, S>>
pub fn to_simple(&self) -> Result<SimpleValue, ToSimpleError<C, S>>
Converts this Value
into a SimpleValue
for use outside the VM.
Sourcepub fn from_simple(mc: &Mutation<'gc>, value: SimpleValue) -> Self
pub fn from_simple(mc: &Mutation<'gc>, value: SimpleValue) -> Self
Converts a SimpleValue
into a Value
for use inside the VM.
Sourcepub fn identity(&self) -> Identity<'gc, C, S>
pub fn identity(&self) -> Identity<'gc, C, S>
Returns a value representing this object that implements Eq
such that
two values are equal if and only if they are references to the same object.
This is primarily useful for testing for reference equality of lists.
Sourcepub fn as_bool(&self) -> Result<bool, ConversionError<C, S>>
pub fn as_bool(&self) -> Result<bool, ConversionError<C, S>>
Attempts to interpret this value as a bool.
Sourcepub fn as_number(&self) -> Result<Number, ConversionError<C, S>>
pub fn as_number(&self) -> Result<Number, ConversionError<C, S>>
Attempts to interpret this value as a number.
Sourcepub fn as_text(&self) -> Result<Text, ConversionError<C, S>>
pub fn as_text(&self) -> Result<Text, ConversionError<C, S>>
Attempts to interpret this value as a string.
Sourcepub fn as_image(&self) -> Result<&Rc<Image>, ConversionError<C, S>>
pub fn as_image(&self) -> Result<&Rc<Image>, ConversionError<C, S>>
Attempts to interpret this value as an image.
Sourcepub fn as_audio(&self) -> Result<&Rc<Audio>, ConversionError<C, S>>
pub fn as_audio(&self) -> Result<&Rc<Audio>, ConversionError<C, S>>
Attempts to interpret this value as an audio clip.
Sourcepub fn as_list(
&self,
) -> Result<Gc<'gc, RefLock<VecDeque<Value<'gc, C, S>>>>, ConversionError<C, S>>
pub fn as_list( &self, ) -> Result<Gc<'gc, RefLock<VecDeque<Value<'gc, C, S>>>>, ConversionError<C, S>>
Attempts to interpret this value as a list.
Sourcepub fn as_closure(
&self,
) -> Result<Gc<'gc, RefLock<Closure<'gc, C, S>>>, ConversionError<C, S>>
pub fn as_closure( &self, ) -> Result<Gc<'gc, RefLock<Closure<'gc, C, S>>>, ConversionError<C, S>>
Attempts to interpret this value as a closure.
Trait Implementations§
Source§impl<'gc, C: CustomTypes<S>, S: System<C>> Collect for Value<'gc, C, S>
impl<'gc, C: CustomTypes<S>, S: System<C>> Collect for Value<'gc, C, S>
Source§fn needs_trace() -> bool
fn needs_trace() -> bool
Gc
pointer and trace
is unnecessary
to call, you may implement this method and return false. The default implementation returns
true, signaling that Collect::trace
must be called.Source§fn trace(&self, cc: &Collection)
fn trace(&self, cc: &Collection)
Collect::trace
on all held Gc
pointers. If this type holds inner types that
implement Collect
, a valid implementation would simply call Collect::trace
on all the
held values to ensure this.Source§impl<'gc, C: CustomTypes<S>, S: System<C>> From<CheckedFloat<f64, NumberChecker>> for Value<'gc, C, S>
impl<'gc, C: CustomTypes<S>, S: System<C>> From<CheckedFloat<f64, NumberChecker>> for Value<'gc, C, S>
Source§impl<'gc, C: CustomTypes<S>, S: System<C>> From<Gc<'gc, RefLock<Closure<'gc, C, S>>>> for Value<'gc, C, S>
impl<'gc, C: CustomTypes<S>, S: System<C>> From<Gc<'gc, RefLock<Closure<'gc, C, S>>>> for Value<'gc, C, S>
Source§impl<'gc, C: CustomTypes<S>, S: System<C>> From<Gc<'gc, RefLock<Entity<'gc, C, S>>>> for Value<'gc, C, S>
impl<'gc, C: CustomTypes<S>, S: System<C>> From<Gc<'gc, RefLock<Entity<'gc, C, S>>>> for Value<'gc, C, S>
Source§impl<'gc, C: CustomTypes<S>, S: System<C>> From<Gc<'gc, RefLock<VecDeque<Value<'gc, C, S>>>>> for Value<'gc, C, S>
impl<'gc, C: CustomTypes<S>, S: System<C>> From<Gc<'gc, RefLock<VecDeque<Value<'gc, C, S>>>>> for Value<'gc, C, S>
Source§impl<'gc, C: CustomTypes<S>, S: System<C>> From<OurString<RcBytes, INLINE_SIZE>> for Value<'gc, C, S>
impl<'gc, C: CustomTypes<S>, S: System<C>> From<OurString<RcBytes, INLINE_SIZE>> for Value<'gc, C, S>
Auto Trait Implementations§
impl<'gc, C, S> Freeze for Value<'gc, C, S>
impl<'gc, C, S> !RefUnwindSafe for Value<'gc, C, S>
impl<'gc, C, S> !Send for Value<'gc, C, S>
impl<'gc, C, S> !Sync for Value<'gc, C, S>
impl<'gc, C, S> Unpin for Value<'gc, C, S>
impl<'gc, C, S> !UnwindSafe for Value<'gc, C, S>
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
Source§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
ToCompactString::to_compact_string()
Read moreSource§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
CompactString
. Read moreSource§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string
, but without panic on OOM.