Struct State

Source
#[repr(C)]
pub struct State;

Implementations§

Source§

impl State

Source

pub fn initialize( env: &mut Env<'_>, (address, contract_state): (&Address, &mut VariableBytes<RECOMMENDED_STATE_CAPACITY>), state: &VariableBytes<RECOMMENDED_STATE_CAPACITY>, ) -> Result<(), ContractError>

Initialize state.

Similar to State::write(), but returns error if the state is not empty.

Source

pub fn write( env: &mut Env<'_>, (address, state): (&Address, &mut VariableBytes<RECOMMENDED_STATE_CAPACITY>), new_state: &VariableBytes<RECOMMENDED_STATE_CAPACITY>, ) -> Result<(), ContractError>

Write state.

Only direct caller is allowed to write its own state for security reasons.

Source

pub fn compare_and_write( env: &mut Env<'_>, (address, state): (&Address, &mut VariableBytes<RECOMMENDED_STATE_CAPACITY>), old_state: &VariableBytes<RECOMMENDED_STATE_CAPACITY>, new_state: &VariableBytes<RECOMMENDED_STATE_CAPACITY>, ) -> Result<bool, ContractError>

Compare state with a given old state and write new state if old state matches.

Only direct caller is allowed to write its own state for security reasons.

Returns boolean indicating whether write happened or not.

Source

pub fn read( contract_state: &VariableBytes<RECOMMENDED_STATE_CAPACITY>, state: &mut VariableBytes<RECOMMENDED_STATE_CAPACITY>, ) -> Result<(), ContractError>

Read state

Source

pub fn is_empty( contract_state: &VariableBytes<RECOMMENDED_STATE_CAPACITY>, ) -> bool

Check if the state is empty

Trait Implementations§

Source§

impl Clone for State

Source§

fn clone(&self) -> State

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Contract for State

Source§

const MAIN_CONTRACT_METADATA: &[u8]

Main contract metadata, see ContractMetadataKind for encoding details. Read more
Source§

type Slot = VariableBytes<RECOMMENDED_STATE_CAPACITY>

Slot type used by this contract
Source§

type Tmp = ()

Tmp type used by this contract
Source§

fn code() -> impl Deref<Target = VariableBytes<{ ::ab_contracts_macros::__private::MAX_CODE_SIZE }>>

Something that can be used as “code” in native execution environment and primarily used for testing. Read more
Source§

impl Debug for State

Source§

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

Formats the value using the given formatter. Read more
Source§

impl TrivialType for State

Source§

const METADATA: &[u8]

Data structure metadata in binary form, describing shape and types of the contents, see [IoTypeMetadataKind] for encoding details.
§

const SIZE: u32 = _

§

unsafe fn from_bytes(bytes: &[u8]) -> Option<&Self>

Create a reference to a type, which is represented by provided memory. Read more
§

unsafe fn from_bytes_mut(bytes: &mut [u8]) -> Option<&mut Self>

Create a mutable reference to a type, which is represented by provided memory. Read more
§

fn as_bytes(&self) -> &[u8]

Access the underlying byte representation of a data structure
§

unsafe fn as_bytes_mut(&mut self) -> &mut [u8]

Access the underlying mutable byte representation of a data structure. Read more
Source§

impl Copy for State

Auto Trait Implementations§

§

impl Freeze for State

§

impl RefUnwindSafe for State

§

impl Send for State

§

impl Sync for State

§

impl Unpin for State

§

impl UnwindSafe for State

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> IoType for T
where T: TrivialType,

§

const METADATA: &'static [u8] = T::METADATA

Data structure metadata in binary form, describing shape and types of the contents, see IoTypeMetadataKind for encoding details
§

type PointerType = T

Pointer with trivial type that this IoType represents
§

fn size(&self) -> u32

Number of bytes that are currently used to store data
§

unsafe fn size_ptr(&self) -> impl Deref<Target = NonNull<u32>>

Pointer to the number of bytes that are currently used to store data. Read more
§

unsafe fn size_mut_ptr(&mut self) -> impl DerefMut

An exclusive pointer to the number of bytes that are currently used to store data. Read more
§

fn capacity(&self) -> u32

Number of bytes are allocated right now
§

unsafe fn capacity_ptr(&self) -> impl Deref<Target = NonNull<u32>>

Number of bytes are allocated right now Read more
§

unsafe fn set_size(&mut self, size: u32)

Set the number of used bytes Read more
§

unsafe fn from_ptr<'a>( ptr: &'a NonNull<<T as IoType>::PointerType>, size: &'a u32, capacity: u32, ) -> impl Deref<Target = T> + 'a

Create a reference to a type, which is represented by provided memory. Read more
§

unsafe fn from_mut_ptr<'a>( ptr: &'a mut NonNull<<T as IoType>::PointerType>, _size: &'a mut *mut u32, capacity: u32, ) -> impl DerefMut + 'a

Create a mutable reference to a type, which is represented by provided memory. Read more
§

unsafe fn as_ptr( &self, ) -> impl Deref<Target = NonNull<<T as IoType>::PointerType>>

Get a raw pointer to the underlying data with no checks. Read more
§

unsafe fn as_mut_ptr(&mut self) -> impl DerefMut

Get an exclusive raw pointer to the underlying data with no checks. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.