Struct ergotree_ir::ergo_tree::ErgoTree[][src]

pub struct ErgoTree { /* fields omitted */ }
Expand description

The root of ErgoScript IR. Serialized instances of this class are self sufficient and can be passed around.

Implementations

impl ErgoTree[src]

pub const MAX_CONSTANTS_COUNT: usize[src]

Reasonable limit for the number of constants allowed in the ErgoTree

pub fn proposition(&self) -> Result<Rc<Expr>, ErgoTreeParsingError>[src]

get Expr out of ErgoTree

pub fn without_segregation(expr: Expr) -> ErgoTree[src]

Build ErgoTree using expr as is, without constants segregated

pub fn with_segregation(expr: &Expr) -> ErgoTree[src]

Build ErgoTree with constants segregated from expr

pub fn debug_tree(&self) -> String[src]

Prints with newlines

pub fn to_base16_bytes(&self) -> String[src]

Returns Base16-encoded serialized bytes

pub fn constants_len(&self) -> Result<usize, ErgoTreeConstantsParsingError>[src]

Returns constants number as stored in serialized ErgoTree or error if the parsing of constants is failed

pub fn get_constant(
    &self,
    index: usize
) -> Result<Option<Constant>, ErgoTreeConstantsParsingError>
[src]

Returns constant with given index (as stored in serialized ErgoTree) or None if index is out of bounds or error if constants parsing were failed

pub fn set_constant(
    &mut self,
    index: usize,
    constant: Constant
) -> Result<Option<Constant>, ErgoTreeConstantsParsingError>
[src]

Sets new constant value for a given index in constants list (as stored in serialized ErgoTree), and returns previous constant or None if index is out of bounds or error if constants parsing were failed

pub fn template_bytes(&self) -> Result<Vec<u8>, ErgoTreeConstantsParsingError>[src]

Serialized proposition expression of SigmaProp type with ConstantPlaceholder nodes instead of Constant nodes

Trait Implementations

impl Clone for ErgoTree[src]

fn clone(&self) -> ErgoTree[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for ErgoTree[src]

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

Formats the value using the given formatter. Read more

impl From<Expr> for ErgoTree[src]

fn from(expr: Expr) -> Self[src]

Performs the conversion.

impl PartialEq<ErgoTree> for ErgoTree[src]

fn eq(&self, other: &ErgoTree) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, other: &ErgoTree) -> bool[src]

This method tests for !=.

impl SigmaSerializable for ErgoTree[src]

fn sigma_serialize<W: SigmaByteWrite>(&self, w: &mut W) -> Result<(), Error>[src]

Write self to the given writer. This function has a sigma_ prefix to alert the reader that the serialization in use is consensus-critical serialization
Notice that the error type is std::io::Error; this indicates that serialization MUST be infallible up to errors in the underlying writer. In other words, any type implementing SigmaSerializable must make illegal states unrepresentable. Read more

fn sigma_parse<R: SigmaByteRead>(r: &mut R) -> Result<Self, SerializationError>[src]

Try to read self from the given reader. sigma- prefix to alert the reader that the serialization in use is consensus-critical Read more

fn sigma_parse_bytes(bytes: &[u8]) -> Result<Self, SerializationError>[src]

Parse self from the bytes

fn sigma_serialize_bytes(&self) -> Vec<u8>[src]

Serialize any SigmaSerializable value into bytes

impl TryFrom<ErgoTree> for ProveDlog[src]

type Error = TryExtractFromError

The type returned in the event of a conversion error.

fn try_from(tree: ErgoTree) -> Result<Self, Self::Error>[src]

Performs the conversion.

impl Eq for ErgoTree[src]

impl StructuralEq for ErgoTree[src]

impl StructuralPartialEq for ErgoTree[src]

Auto Trait Implementations

impl !RefUnwindSafe for ErgoTree

impl !Send for ErgoTree

impl !Sync for ErgoTree

impl Unpin for ErgoTree

impl UnwindSafe for ErgoTree

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T> TryExtractFrom<Expr> for T where
    T: TryFrom<Expr>, 
[src]

pub fn try_extract_from(Expr) -> Result<T, TryExtractFromError>[src]

Extract the value or return an error if type does not match

impl<F> TryExtractInto<F> for F[src]

pub fn try_extract_into<T>(Self) -> Result<T, TryExtractFromError> where
    T: TryExtractFrom<F>, 
[src]

Extract value of the given type from any type (e.g. [‘Constant’], super::value::Value) on which TryExtractFrom is implemented Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

pub fn vzip(self) -> V