Enum Value

Source
pub enum Value<'gc> {
Show 16 variants Number(f64), Boolean(bool), String(InternedString<'gc>), IoString(Gc<'gc, String>), Closure(Gc<'gc, Closure<'gc>>), NativeFunction(NativeFn<'gc>), List(GcRefLock<'gc, List<'gc>>), Object(GcRefLock<'gc, Object<'gc>>), Enum(GcRefLock<'gc, Enum<'gc>>), EnumVariant(Gc<'gc, EnumVariant<'gc>>), Class(GcRefLock<'gc, Class<'gc>>), Instance(GcRefLock<'gc, Instance<'gc>>), BoundMethod(Gc<'gc, BoundMethod<'gc>>), Module(InternedString<'gc>), Agent(Gc<'gc, Agent<'gc>>), Nil,
}

Variants§

§

Number(f64)

§

Boolean(bool)

§

String(InternedString<'gc>)

§

IoString(Gc<'gc, String>)

§

Closure(Gc<'gc, Closure<'gc>>)

§

NativeFunction(NativeFn<'gc>)

§

List(GcRefLock<'gc, List<'gc>>)

§

Object(GcRefLock<'gc, Object<'gc>>)

§

Enum(GcRefLock<'gc, Enum<'gc>>)

§

EnumVariant(Gc<'gc, EnumVariant<'gc>>)

§

Class(GcRefLock<'gc, Class<'gc>>)

§

Instance(GcRefLock<'gc, Instance<'gc>>)

§

BoundMethod(Gc<'gc, BoundMethod<'gc>>)

§

Module(InternedString<'gc>)

§

Agent(Gc<'gc, Agent<'gc>>)

§

Nil

Implementations§

Source§

impl<'gc> Value<'gc>

Source

pub fn array(mc: &Mutation<'gc>, data: Vec<Value<'gc>>) -> Self

Source

pub fn equals(&self, other: &Value<'gc>) -> bool

Source

pub fn as_number(self) -> Result<f64, VmError>

Source

pub fn as_boolean(&self) -> bool

Source

pub fn as_string(self) -> Result<InternedString<'gc>, VmError>

Source

pub fn as_string_value(&self) -> Result<StringValue<'gc>, VmError>

Source

pub fn new_string(ctx: Context<'gc>, s: &str, should_intern: bool) -> Value<'gc>

Source

pub fn as_closure(self) -> Result<Gc<'gc, Closure<'gc>>, VmError>

Source

pub fn as_array(self) -> Result<GcRefLock<'gc, List<'gc>>, VmError>

Source

pub fn as_agent(self) -> Result<Gc<'gc, Agent<'gc>>, VmError>

Source

pub fn as_class(self) -> Result<GcRefLock<'gc, Class<'gc>>, VmError>

Source

pub fn is_error(&self) -> bool

Source

pub fn is_object(&self) -> bool

Source

pub fn is_bound_method(&self) -> bool

Source

pub fn is_class(&self) -> bool

Source

pub fn is_instance(&self) -> bool

Source

pub fn is_closure(&self) -> bool

Source

pub fn is_native_function(&self) -> bool

Source

pub fn is_nil(&self) -> bool

Source

pub fn is_number(&self) -> bool

Source

pub fn is_boolean(&self) -> bool

Source

pub fn is_true(&self) -> bool

Source

pub fn is_falsy(&self) -> bool

Source

pub fn from_serde_value(ctx: Context<'gc>, value: &Value) -> Value<'gc>

Source

pub fn to_serde_value(&self) -> Value

Source§

impl Value<'_>

Source

pub fn is_enum(&self) -> bool

Source

pub fn is_enum_variant(&self) -> bool

Trait Implementations§

Source§

impl<'gc> Clone for Value<'gc>

Source§

fn clone(&self) -> Value<'gc>

Returns a duplicate of the value. Read more
1.0.0 · Source§

const fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'gc> Collect for Value<'gc>

Source§

fn needs_trace() -> bool

As an optimization, if this type can never hold a 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)

Must call 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> Default for Value<'gc>

Source§

fn default() -> Value<'gc>

Returns the “default value” for a type. Read more
Source§

impl Display for Value<'_>

Source§

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

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

impl<'gc> From<Gc<'gc, Agent<'gc>>> for Value<'gc>

Source§

fn from(value: Gc<'gc, Agent<'gc>>) -> Self

Converts to this type from the input type.
Source§

impl<'gc> From<Gc<'gc, BoundMethod<'gc>>> for Value<'gc>

Source§

fn from(value: Gc<'gc, BoundMethod<'gc>>) -> Self

Converts to this type from the input type.
Source§

impl<'gc> From<Gc<'gc, Closure<'gc>>> for Value<'gc>

Source§

fn from(value: Gc<'gc, Closure<'gc>>) -> Self

Converts to this type from the input type.
Source§

impl<'gc> From<Gc<'gc, RefLock<Class<'gc>>>> for Value<'gc>

Source§

fn from(value: GcRefLock<'gc, Class<'gc>>) -> Self

Converts to this type from the input type.
Source§

impl<'gc> From<Gc<'gc, RefLock<Instance<'gc>>>> for Value<'gc>

Source§

fn from(value: GcRefLock<'gc, Instance<'gc>>) -> Self

Converts to this type from the input type.
Source§

impl<'gc> From<Gc<'gc, String>> for Value<'gc>

Source§

fn from(value: Gc<'gc, String>) -> Self

Converts to this type from the input type.
Source§

impl<'gc> From<Value<'gc>> for ReturnValue

Source§

fn from(value: Value<'gc>) -> Self

Converts to this type from the input type.
Source§

impl From<bool> for Value<'_>

Source§

fn from(value: bool) -> Self

Converts to this type from the input type.
Source§

impl From<f64> for Value<'_>

Source§

fn from(value: f64) -> Self

Converts to this type from the input type.
Source§

impl From<u64> for Value<'_>

Source§

fn from(value: u64) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for Value<'_>

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

const fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'gc> Copy for Value<'gc>

Auto Trait Implementations§

§

impl<'gc> Freeze for Value<'gc>

§

impl<'gc> !RefUnwindSafe for Value<'gc>

§

impl<'gc> !Send for Value<'gc>

§

impl<'gc> !Sync for Value<'gc>

§

impl<'gc> Unpin for Value<'gc>

§

impl<'gc> !UnwindSafe for Value<'gc>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T> ToStringFallible for T
where T: Display,

Source§

fn try_to_string(&self) -> Result<String, TryReserveError>

ToString::to_string, but without panic on OOM.

Source§

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

Source§

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>,

Source§

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,