Skip to main content

Value

Enum Value 

Source
pub enum Value {
Show 24 variants Int(BigInt), Float(f64), Str(String), Bool(bool), Null, Absent, Undef, Q { dim: String, value: f64, }, Ref(Rc<SegPath>), Rec(Rc<RefCell<RecInst>>), Arr(Rc<RefCell<ArrV>>), Map(Rc<RefCell<MapV>>), Range { lo: Box<Value>, hi: Box<Value>, excl: bool, }, Clo(Rc<Closure>), Nat(NatFn), Std(Rc<Vec<String>>), NsRef(Rc<NsRefV>), Pat(String), PreObj(Rc<Vec<(String, Value)>>), PreArr(Rc<Vec<(bool, Value)>>), PreVal(Rc<PreValV>), JObj(Rc<Vec<(String, Value)>>), JArr(Rc<Vec<Value>>), Segs(Rc<SegPath>),
}
Expand description

a runtime value (§9): the scalars, quantities, references, and instances, and the engine’s intermediate forms

Variants§

§

Int(BigInt)

an integer

§

Float(f64)

a float

§

Str(String)

a string

§

Bool(bool)

a boolean

§

Null

null

§

Absent

an absent optional member (§4.6)

§

Undef

not yet computed

§

Q

a quantity

Fields

§dim: String

its dimension key

§value: f64

its value in the base unit

§

Ref(Rc<SegPath>)

a reference, by canonical path

§

Rec(Rc<RefCell<RecInst>>)

a record instance

§

Arr(Rc<RefCell<ArrV>>)

an array

§

Map(Rc<RefCell<MapV>>)

a map

§

Range

a range value

Fields

§lo: Box<Value>

the lower bound

§hi: Box<Value>

the upper bound

§excl: bool

whether the upper bound is excluded

§

Clo(Rc<Closure>)

a closure

§

Nat(NatFn)

a native function

§

Std(Rc<Vec<String>>)

a standard-library path, partially spelled

§

NsRef(Rc<NsRefV>)

a namespace

§

Pat(String)

a pattern

§

PreObj(Rc<Vec<(String, Value)>>)

a record literal not yet bound

§

PreArr(Rc<Vec<(bool, Value)>>)

an array literal not yet bound: (spread, item)

§

PreVal(Rc<PreValV>)

an expression not yet evaluated, with its scope

§

JObj(Rc<Vec<(String, Value)>>)

a JSON object, as read

§

JArr(Rc<Vec<Value>>)

a JSON array, as read

§

Segs(Rc<SegPath>)

a path value

Implementations§

Source§

impl Value

Source

pub fn tag(&self) -> &'static str

The value’s kind, as a word.

Source

pub fn is_undef(&self) -> bool

Whether the value is not yet computed.

Source

pub fn is_absent(&self) -> bool

Whether the value is absent.

Source

pub fn place(&self) -> Option<SegPath>

The canonical path the value sits at or refers to, when it has one.

Trait Implementations§

Source§

impl Clone for Value

Source§

fn clone(&self) -> Value

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Value

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Value

§

impl !Send for Value

§

impl !Sync for Value

§

impl !UnwindSafe for Value

§

impl Freeze for Value

§

impl Unpin for Value

§

impl UnsafeUnpin for Value

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, 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> 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.