pub struct MacroDefinition {
pub name: String,
pub decorator: Option<Decorator>,
pub parameters: Vec<Argument>,
pub statements: Vec<Statement>,
pub takes: usize,
pub returns: usize,
pub span: AstSpan,
pub outlined: bool,
pub test: bool,
}Expand description
A Macro Definition
Fields§
§name: StringThe Macro Name
decorator: Option<Decorator>The macro’s decorator
parameters: Vec<Argument>A list of Macro parameters
statements: Vec<Statement>A list of Statements contained in the Macro
takes: usizeThe take size
returns: usizeThe return size
span: AstSpanThe Span of the Macro Definition
outlined: boolIs the macro a function (outlined)?
test: boolIs the macro a test?
Implementations§
Source§impl MacroDefinition
impl MacroDefinition
Sourcepub fn new(
name: String,
decorator: Option<Decorator>,
parameters: Vec<Argument>,
statements: Vec<Statement>,
takes: usize,
returns: usize,
spans: Vec<Span>,
outlined: bool,
test: bool,
) -> Self
pub fn new( name: String, decorator: Option<Decorator>, parameters: Vec<Argument>, statements: Vec<Statement>, takes: usize, returns: usize, spans: Vec<Span>, outlined: bool, test: bool, ) -> Self
Public associated function that instantiates a MacroDefinition.
Sourcepub fn to_irbytes<'a>(
evm_version: &EVMVersion,
statements: &'a [Statement],
) -> Vec<IRBytes<'a>>
pub fn to_irbytes<'a>( evm_version: &EVMVersion, statements: &'a [Statement], ) -> Vec<IRBytes<'a>>
Translate statements into IRBytes
Trait Implementations§
Source§impl Clone for MacroDefinition
impl Clone for MacroDefinition
Source§impl Debug for MacroDefinition
impl Debug for MacroDefinition
impl Eq for MacroDefinition
Source§impl Ord for MacroDefinition
impl Ord for MacroDefinition
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the minimum of two values. Read more
Source§impl PartialEq for MacroDefinition
impl PartialEq for MacroDefinition
Source§impl PartialOrd for MacroDefinition
impl PartialOrd for MacroDefinition
impl StructuralPartialEq for MacroDefinition
Source§impl ToIRBytecode<CodegenError> for MacroDefinition
impl ToIRBytecode<CodegenError> for MacroDefinition
Source§fn to_irbytecode(
&self,
evm_version: &EVMVersion,
) -> Result<IRBytecode<'_>, CodegenError>
fn to_irbytecode( &self, evm_version: &EVMVersion, ) -> Result<IRBytecode<'_>, CodegenError>
Translates
self to intermediate bytecode representationAuto Trait Implementations§
impl Freeze for MacroDefinition
impl RefUnwindSafe for MacroDefinition
impl Send for MacroDefinition
impl Sync for MacroDefinition
impl Unpin for MacroDefinition
impl UnsafeUnpin for MacroDefinition
impl UnwindSafe for MacroDefinition
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<S, T> Upcast<T> for S
impl<S, T> Upcast<T> for S
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 144 bytes