Struct Articles

Source
pub struct Articles { /* private fields */ }
Expand description

Articles contain the contract and all related codex and API information for interacting with it.

§Invariance

The structure provides the following invariance guarantees:

  • all the API codex matches the codex under which the contract was issued;
  • all the API ids are unique;
  • all custom APIs have unique names;
  • the signature, if present, is a valid sig over the ArticlesId.

Implementations§

Source§

impl Articles

Source

pub fn with<E>( semantics: Semantics, issue: Issue, sig: Option<SigBlob>, sig_validator: impl FnOnce(StrictHash, &Identity, &SigBlob) -> Result<(), E>, ) -> Result<Self, SemanticError>

Construct articles from a signed contract semantic and the contract issue under that semantics.

Source

pub fn articles_id(&self) -> ArticlesId

Compute an article id, which includes information about the contract id, API version and checksum.

Source

pub fn contract_id(&self) -> ContractId

Compute a contract id.

Source

pub fn codex_id(&self) -> CodexId

Compute a codex id.

Source

pub fn genesis_opid(&self) -> Opid

Compute a genesis opid.

Source

pub fn semantics(&self) -> &Semantics

Get a reference to the contract semantic.

Source

pub fn default_api(&self) -> &Api

Get a reference to the default API.

Source

pub fn custom_apis(&self) -> impl Iterator<Item = (&TypeName, &Api)>

Get an iterator over the custom APIs.

Source

pub fn types(&self) -> &TypeSystem

Get a reference to the type system.

Source

pub fn apis(&self) -> impl Iterator<Item = &Api>

Iterates over all APIs, including the default and the named ones.

Source

pub fn codex_libs(&self) -> impl Iterator<Item = &Lib>

Iterates over all codex libraries.

Source

pub fn issue(&self) -> &Issue

Get a reference to the contract issue information.

Source

pub fn codex(&self) -> &Codex

Get a reference to the contract codex.

Source

pub fn genesis(&self) -> &Genesis

Get a reference to the contract genesis.

Source

pub fn contract_meta(&self) -> &ContractMeta

Get a reference to the contract meta-information.

Source

pub fn contract_name(&self) -> &ContractName

Get a reference to the contract name.

Source

pub fn sig(&self) -> &Option<SigBlob>

Get a reference to a signature over the contract semantics.

Source

pub fn is_signed(&self) -> bool

Detect whether the articles are signed.

Source

pub fn upgrade_apis(&mut self, other: Self) -> Result<bool, SemanticError>

Upgrades contract APIs if a newer version is available.

§Returns

Whether the upgrade has happened, i.e. other represents a valid later version of the APIs.

Source

pub fn call_id(&self, method: impl Into<MethodName>) -> CallId

Get a CallId for a method from the default API.

§Panics

If the method name is not known.

Trait Implementations§

Source§

impl Clone for Articles

Source§

fn clone(&self) -> Articles

Returns a duplicate 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 Debug for Articles

Source§

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

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

impl LibRepo for Articles

Source§

fn get_lib(&self, lib_id: LibId) -> Option<&Lib>

Get a specific library with the provided id. Read more
Source§

impl PartialEq for Articles

Source§

fn eq(&self, other: &Articles) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StrictDumb for Articles

Source§

fn strict_dumb() -> Self

Source§

impl StrictEncode for Articles

Source§

fn strict_encode<W: TypedWrite>(&self, writer: W) -> Result<W>

Source§

fn strict_write(&self, writer: impl WriteRaw) -> Result<(), Error>

Source§

impl StrictStruct for Articles

Source§

impl StrictType for Articles

Source§

const STRICT_LIB_NAME: &'static str = LIB_NAME_SONIC

Source§

fn strict_name() -> Option<TypeName>

Source§

impl Eq for Articles

Source§

impl StrictProduct for Articles

Source§

impl StructuralPartialEq for Articles

Auto Trait Implementations§

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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.
Source§

impl<T> VerifyEq for T
where T: Eq,

Source§

fn verify_eq(&self, other: &T) -> bool

Verifies commit-equivalence of two instances of the same type.