Enum Value

Source
pub enum Value {
    Integer(i64),
    Float(f64),
    Boolean(bool),
    String(String),
    Function(Function),
    Null,
}
Expand description

The Value enum represents a data type that can be stored in an Environment. Each type contains the data it represents (e.g. a Value::Integer contains an i64).

There are 6 types of values: Integer, Float, Boolean, String, Function and Null.

Variants§

§

Integer(i64)

§

Float(f64)

§

Boolean(bool)

§

String(String)

§

Function(Function)

§

Null

The Null variant is used to represent the absence of a value. It is used to represent the result of an expression that doesn’t return anything (e.g. a function call that doesn’t return anything).

Implementations§

Source§

impl Value

Source

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

Returns the display name of the variant of the Value enum.

Source

pub fn cast_to_boolean(&self) -> Result<Self, Error>

This method converts any Value to a Value::Boolean. It returns an error if the conversion is not possible.

Source

pub fn cast_to_string(&self) -> Self

This method converts any Value to a Value::Integer. It returns an error if the conversion is not possible. (For now, all conversions are possible.)

Source

pub fn eq(&self, other: &Self) -> Result<Self, Error>

Source

pub fn ne(&self, other: &Self) -> Result<Self, Error>

Source

pub fn lt(&self, other: &Self) -> Result<Self, Error>

Source

pub fn le(&self, other: &Self) -> Result<Self, Error>

Source

pub fn gt(&self, other: &Self) -> Result<Self, Error>

Source

pub fn ge(&self, other: &Self) -> Result<Self, Error>

Source

pub fn not(&self) -> Result<Self, Error>

This method returns the logical negation of a Value::Boolean. It returns an error for all other types.

Source

pub fn and(&self, other: &Self) -> Result<Self, Error>

This method returns the logical and of two Value::Booleans. It returns an error for all other types.

Source

pub fn or(&self, other: &Self) -> Result<Self, Error>

This method returns the logical or of two Value::Booleans. It returns an error for all other types.

Source

pub fn sub(&self, other: &Self) -> Result<Self, Error>

Source

pub fn mul(&self, other: &Self) -> Result<Self, Error>

Source

pub fn rem(&self, other: &Self) -> Result<Self, Error>

Source

pub fn add(&self, other: &Self) -> Result<Self, Error>

This method returns the sum of two Values. It returns an error if the operation is not possible.

Source

pub fn div(&self, other: &Self) -> Result<Self, Error>

This method returns the result of dividing two Values. It returns an error if the operation is not possible, or if a division by zero occurs.

Source

pub fn neg(&self) -> Result<Self, Error>

This method returns the negation of a Value. It returns an error if the operation is not possible.

Trait Implementations§

Source§

impl Debug for Value

Source§

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

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

impl Display for Value

Implementing the Display trait for Value allows for the pretty printing of values.

Source§

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

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

impl PartialEq for Value

Source§

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

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

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