[][src]Struct solana_libra_vm::file_format::FunctionDefinition

pub struct FunctionDefinition {
    pub function: FunctionHandleIndex,
    pub flags: u8,
    pub acquires_global_resources: Vec<StructDefinitionIndex>,
    pub code: CodeUnit,
}

A FunctionDefinition is the implementation of a function. It defines the prototype of the function and the function body.

Fields

function: FunctionHandleIndex

The prototype of the function (module, name, signature).

flags: u8

Flags for this function (private, public, native, etc.)

acquires_global_resources: Vec<StructDefinitionIndex>

List of nominal resources (declared in this module) that the procedure might access Either through: BorrowGlobal, MoveFrom, or transitively through another procedure This list of acquires grants the borrow checker the ability to statically verify the safety of references into global storage

Not in the signature as it is not needed outside of the declaring module

Note, there is no LocalsSignatureIndex with each struct definition index, as global resources cannot currently take type arguments

code: CodeUnit

Code for this function.

Methods

impl FunctionDefinition[src]

pub fn is_public(&self) -> bool[src]

Returns whether the FunctionDefinition is public.

pub fn is_native(&self) -> bool[src]

Returns whether the FunctionDefinition is native.

Trait Implementations

impl<'_> BoundsCheck<&'_ CompiledModuleMut> for FunctionDefinition[src]

impl Clone for FunctionDefinition[src]

impl Debug for FunctionDefinition[src]

impl Default for FunctionDefinition[src]

impl Eq for FunctionDefinition[src]

impl PartialEq<FunctionDefinition> for FunctionDefinition[src]

impl StructuralEq for FunctionDefinition[src]

impl StructuralPartialEq for FunctionDefinition[src]

Auto Trait Implementations

Blanket Implementations

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

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

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

impl<T> Clear for T where
    T: InitializableFromZeroed + ?Sized

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

impl<T> InitializableFromZeroed for T where
    T: Default

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

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> SendSyncUnwindSafe for T where
    T: Send + Sync + UnwindSafe + ?Sized

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

type Owned = T

The resulting type after obtaining ownership.

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.

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.

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