Struct leo_ast::Ast

source ·
pub struct Ast {
    pub ast: Program,
}
Expand description

The abstract syntax tree (AST) for a Leo program.

The Ast type represents a Leo program as a series of recursive data types. These data types form a tree that begins from a Program type root.

Fields§

§ast: Program

Implementations§

source§

impl Ast

source

pub fn new(program: Program) -> Self

Creates a new AST from a given program tree.

source

pub fn as_repr(&self) -> &Program

Returns a reference to the inner program AST representation.

source

pub fn into_repr(self) -> Program

source

pub fn to_json_string(&self) -> Result<String>

Serializes the ast into a JSON string.

source

pub fn to_json_value(&self) -> Result<Value>

source

pub fn to_json_file(&self, path: PathBuf, file_name: &str) -> Result<()>

Serializes the ast into a JSON file.

source

pub fn to_json_file_without_keys( &self, path: PathBuf, file_name: &str, excluded_keys: &[&str] ) -> Result<()>

Serializes the ast into a JSON value and removes keys from object mappings before writing to a file.

source

pub fn from_json_string(json: &str) -> Result<Self>

Deserializes the JSON string into a ast.

source

pub fn from_json_file(path: PathBuf) -> Result<Self>

Deserializes the JSON string into a ast from a file.

Trait Implementations§

source§

impl AsRef<Program> for Ast

source§

fn as_ref(&self) -> &Program

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl Clone for Ast

source§

fn clone(&self) -> Ast

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 Ast

source§

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

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

impl Default for Ast

source§

fn default() -> Ast

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

impl PartialEq<Ast> for Ast

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for Ast

source§

impl StructuralEq for Ast

source§

impl StructuralPartialEq for Ast

Auto Trait Implementations§

§

impl !RefUnwindSafe for Ast

§

impl Send for Ast

§

impl !Sync for Ast

§

impl Unpin for Ast

§

impl UnwindSafe for Ast

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere 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> ToOwned for Twhere T: Clone,

§

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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.