Canister

Struct Canister 

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

Can be used to represent a canister and different method on the canister.

Implementations§

Source§

impl Canister

Source

pub fn new(id: Principal) -> Self

Create a new canister with the given principal id, this handler rejects any call to a different canister id.

Source

pub fn context(&self) -> Ref<'_, MockContext>

Return a reference to the context associated with this canister.

Source

pub fn with_balance(self, cycles: u64) -> Self

Update the balance of this canister.

Source

pub fn method<S: Into<String> + Copy>( self, name: S, handler: Box<dyn CallHandler>, ) -> Self

Add the given method to the canister.

§Panics

If a method with the same name is already defined on the canister.

Source

pub fn or(self, handler: Box<dyn CallHandler>) -> Self

Add a default handler to the canister.

§Panics

If a default handler is already set.

Trait Implementations§

Source§

impl CallHandler for Canister

Source§

fn accept(&self, canister_id: &Principal, method: &str) -> bool

Whatever the handler can handle the given call or not, if this method returns false, we skip this handler and try to find the next handler that can handle the call.
Source§

fn perform( &self, caller: &Principal, cycles: u64, canister_id: &Principal, method: &str, args_raw: &Vec<u8>, ctx: Option<&mut MockContext>, ) -> (CallResult<Vec<u8>>, u64)

Perform the call using this handler. Only called if accept() first returned true.

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> 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, 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.