Trait SystemFieldApi

Source
pub trait SystemFieldApi<E: Debug> {
    // Required methods
    fn field_read(&mut self, handle: FieldHandle) -> Result<Vec<u8>, E>;
    fn field_write(
        &mut self,
        handle: FieldHandle,
        buffer: Vec<u8>,
    ) -> Result<(), E>;
    fn field_lock(&mut self, handle: FieldHandle) -> Result<(), E>;
    fn field_close(&mut self, handle: FieldHandle) -> Result<(), E>;

    // Provided methods
    fn field_read_typed<S: ScryptoDecode>(
        &mut self,
        handle: FieldHandle,
    ) -> Result<S, E> { ... }
    fn field_write_typed<S: ScryptoEncode>(
        &mut self,
        handle: FieldHandle,
        substate: &S,
    ) -> Result<(), E> { ... }
}
Expand description

System api to read/write fields

Required Methods§

Source

fn field_read(&mut self, handle: FieldHandle) -> Result<Vec<u8>, E>

Retrieve the value of a field

Source

fn field_write(&mut self, handle: FieldHandle, buffer: Vec<u8>) -> Result<(), E>

Write a value to a field

Source

fn field_lock(&mut self, handle: FieldHandle) -> Result<(), E>

Lock a field such that it becomes immutable

Source

fn field_close(&mut self, handle: FieldHandle) -> Result<(), E>

Close a field handle so that it is no longer usable

Provided Methods§

Source

fn field_read_typed<S: ScryptoDecode>( &mut self, handle: FieldHandle, ) -> Result<S, E>

Retrieve the value of a field

Source

fn field_write_typed<S: ScryptoEncode>( &mut self, handle: FieldHandle, substate: &S, ) -> Result<(), E>

Write a value to a field

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§