Enum brane_exe::value::FullValue

source ·
pub enum FullValue {
    Array(Vec<Self>),
    Instance(String, HashMap<String, Self>),
    Data(DataId),
    IntermediateResult(ResultId),
    Boolean(bool),
    Integer(i64),
    Real(f64),
    String(String),
    Void,
}
Expand description

Defines a so-called ‘FullValue’, which is like a normal value but with direct definitions instead of references to them (which makes them ideal to share over the wire).

Note that the order of the enums is not the same as that of Value. This is done to proper disambiguate between Data and String when deserializing.

Variants§

§

Array(Vec<Self>)

It’s an Array of values

§

Instance(String, HashMap<String, Self>)

It’s an instance object, that maps field names to values.

§

Data(DataId)

It’s a data object that contains the identifier of the dataset referenced.

§

IntermediateResult(ResultId)

It’s an intermediate result object that contains the identifier of the dataset or result referenced.

§

Boolean(bool)

It’s a boolean value (true/false)

§

Integer(i64)

It’s an integer value (non-fractional numbers)

§

Real(f64)

It’s a real value (fractional numbers)

§

String(String)

It’s a string value (UTF-8 characters)

§

Void

No value

Implementations§

source§

impl FullValue

source

pub fn bool(self) -> bool

Force-unwraps the FullValue as a regular ol’ boolean.

§Returns

The internal boolean value.

§Panics

This function panics if the given value was not actually a boolean.

source

pub fn int(self) -> i64

Force-unwraps the FullValue as a regular ol’ integer.

§Returns

The internal integer value.

§Panics

This function panics if the given value was not actually an integer.

source

pub fn real(self) -> f64

Force-unwraps the FullValue as a regular ol’ real.

§Returns

The internal real value.

§Panics

This function panics if the given value was not actually a real.

source

pub fn string(self) -> String

Force-unwraps the FullValue as a regular ol’ string.

§Returns

The internal string value.

§Panics

This function panics if the given value was not actually a string.

source

pub fn data(self) -> String

Force-unwraps the FullValue as a regular ol’ dataset (identifier).

§Returns

The internal dataset’s identifier.

§Panics

This function panics if the given value was not actually a data.

source

pub fn result(self) -> String

Force-unwraps the FullValue as a regular ol’ intermediate result (identifier).

§Returns

The internal results’s identifier.

§Panics

This function panics if the given value was not actually a data.

source

pub fn data_type(&self) -> DataType

Returns the DataType of this Value. Note that the following properties may be assumed:

  • The datatype is never Void (since it is a value)
  • Because it is runtime, it always has a non-Any type (i.e., it’s always resolved).
source

pub fn to_value(&self, table: &SymTable) -> Value

Converts the FullValue into its lighter self by resolving its own internals to definition references.

§Arguments
  • table: The VirtualTable where will reference to.
§Returns

A new Value with references instead of duplicate types and such.

source

pub fn into_value(self, table: &SymTable) -> Value

Converts the FullValue into its lighter self by resolving its own internals to definition references.

This operator consumes self, which allows for a more efficient conversion in the case of objects.

§Arguments
  • table: The VirtualTable where will reference to.
§Returns

A new Value with references instead of duplicate types and such.

Trait Implementations§

source§

impl Clone for FullValue

source§

fn clone(&self) -> FullValue

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for FullValue

source§

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

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

impl<'de> Deserialize<'de> for FullValue

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl Display for FullValue

source§

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

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

impl PartialEq for FullValue

source§

fn eq(&self, other: &FullValue) -> 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 Serialize for FullValue

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
source§

impl TryFrom<Value> for FullValue

source§

type Error = ValueError

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

fn try_from(value: JValue) -> Result<Self, Self::Error>

Performs the conversion.
source§

impl StructuralPartialEq for FullValue

Auto Trait Implementations§

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, dst: *mut T)

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

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
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> IntoRequest<T> for T

source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
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§

default 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.
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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

source§

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

source§

impl<T> MaybeSendSync for T