Struct brane_dsl::symbol_table::VarEntry

source ·
pub struct VarEntry {
    pub name: String,
    pub data_type: DataType,
    pub function_name: Option<String>,
    pub class_name: Option<String>,
    pub index: usize,
    pub range: TextRange,
}
Expand description

Defines a regular variable entry within the SymbolTable.

Fields§

§name: String

The name/identifier of the variable.

§data_type: DataType

The data type of the variable (i.e., its signature).

A DataType of DataType::Any indicates that the data type may still need to be resolved in the typing phase. After that, though, it means there is not enough information to actually determine the variable’s type at compile time.

§function_name: Option<String>

If this variable is actually a parameter of a function, the this field contains the function’s name.

§class_name: Option<String>

If this variable is actually a property of a class, the this field contains the class’s name.

§index: usize

The index in the workflow buffer of this variable.

§range: TextRange

The range that points to the entire definition of the variable entry.

Implementations§

source§

impl VarEntry

source

pub fn from_def<S: Into<String>>(name: S, range: TextRange) -> Self

Creates a VarEntry as if it was defined in the source text.

§Generic arguments
  • S: The String-like type of the variable’s name.
§Arguments
  • name: The name of the VarEntry.
  • range: The TextRange that points to the definition itself.
§Returns

A new VarEntry that has no function or class set, and not yet any type information populated.

source

pub fn from_param<S1: Into<String>, S2: Into<String>>( name: S1, function: S2, range: TextRange, ) -> Self

Creates a VarEntry as if it was a parameter of a function.

§Generic arguments
  • S1: The String-like type of the variable’s name.
  • S2: The String-like type of the function.
§Arguments
  • name: The name of the VarEntry.
  • function: The name of the function to which this variable belongs.
  • range: The TextRange that points to the definition itself (i.e., the import statement).
§Returns

A new VarEntry that has the given function set but not yet any type information populated.

source

pub fn from_prop<S1: Into<String>, D: Into<DataType>, S2: Into<String>>( name: S1, data_type: D, class: S2, range: TextRange, ) -> Self

Creates a VarEntry as if it was a property of a class.

§Generic arguments
  • S1: The String-like type of the variable’s name.
  • D: The DataType-like type of the data_type.
  • S2: The String-like type of the class.
§Arguments
  • name: The name of the VarEntry.
  • data_type: The DataType of this property.
  • class: The name of the class to which this variable belongs.
  • range: The TextRange that points to the definition itself (i.e., the import statement).
§Returns

A new VarEntry that has the given class set but not yet any type information populated.

Trait Implementations§

source§

impl Clone for VarEntry

source§

fn clone(&self) -> VarEntry

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 VarEntry

source§

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

Formats the value using the given formatter. Read more

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

source§

impl<T> MaybeSendSync for T