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§
Sourcefn field_read(&mut self, handle: FieldHandle) -> Result<Vec<u8>, E>
fn field_read(&mut self, handle: FieldHandle) -> Result<Vec<u8>, E>
Retrieve the value of a field
Sourcefn field_write(&mut self, handle: FieldHandle, buffer: Vec<u8>) -> Result<(), E>
fn field_write(&mut self, handle: FieldHandle, buffer: Vec<u8>) -> Result<(), E>
Write a value to a field
Sourcefn field_lock(&mut self, handle: FieldHandle) -> Result<(), E>
fn field_lock(&mut self, handle: FieldHandle) -> Result<(), E>
Lock a field such that it becomes immutable
Sourcefn field_close(&mut self, handle: FieldHandle) -> Result<(), E>
fn field_close(&mut self, handle: FieldHandle) -> Result<(), E>
Close a field handle so that it is no longer usable
Provided Methods§
Sourcefn field_read_typed<S: ScryptoDecode>(
&mut self,
handle: FieldHandle,
) -> Result<S, E>
fn field_read_typed<S: ScryptoDecode>( &mut self, handle: FieldHandle, ) -> Result<S, E>
Retrieve the value of a field
Sourcefn field_write_typed<S: ScryptoEncode>(
&mut self,
handle: FieldHandle,
substate: &S,
) -> Result<(), E>
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.