pub struct InstallCodeBuilder<'agent, 'canister: 'agent> { /* private fields */ }
Expand description

A builder for an install_code call.

Implementations§

source§

impl<'agent, 'canister: 'agent> InstallCodeBuilder<'agent, 'canister>

source

pub fn builder( canister: &'canister Canister<'agent>, canister_id: &Principal, wasm: &'canister [u8] ) -> Self

Create an InstallCode builder, which is also an AsyncCall implementation.

source

pub fn with_arg<Argument: CandidType>( self, arg: Argument ) -> InstallCodeBuilder<'agent, 'canister>

Set the argument to the installation, which will be passed to the init method of the canister. Can be called at most once.

source

pub fn with_args(self, tuple: impl ArgumentEncoder) -> Self

Set the argument with multiple arguments as tuple to the installation, which will be passed to the init method of the canister. Can be called at most once.

source

pub fn with_raw_arg(self, arg: Vec<u8>) -> InstallCodeBuilder<'agent, 'canister>

Set the argument passed in to the canister with raw bytes. Can be called at most once.

source

pub fn with_mode(self, mode: InstallMode) -> Self

Pass in the InstallMode.

source

pub fn build(self) -> Result<impl 'agent + AsyncCall<()>, AgentError>

Create an AsyncCall implementation that, when called, will install the canister.

source

pub async fn call(self) -> Result<RequestId, AgentError>

Make a call. This is equivalent to the AsyncCall::call.

source

pub async fn call_and_wait(self) -> Result<(), AgentError>

Make a call. This is equivalent to the AsyncCall::call_and_wait.

Trait Implementations§

source§

impl<'agent, 'canister: 'agent> AsyncCall<()> for InstallCodeBuilder<'agent, 'canister>

source§

fn call<'async_trait>( self ) -> Pin<Box<dyn Future<Output = Result<RequestId, AgentError>> + Send + 'async_trait>>
where Self: 'async_trait,

Execute the call, but returns the RequestId. Waiting on the request Id must be managed by the caller using the Agent directly. Read more
source§

fn call_and_wait<'async_trait>( self ) -> Pin<Box<dyn Future<Output = Result<(), AgentError>> + Send + 'async_trait>>
where Self: 'async_trait,

Execute the call, and wait for an answer using an exponential-backoff strategy. The return type is encoded in the trait.
source§

fn and_then<Out2, R, AndThen>( self, and_then: AndThen ) -> AndThenAsyncCaller<Out, Out2, Self, R, AndThen>
where Self: Sized + Send, Out2: for<'de> ArgumentDecoder<'de> + Send, R: Future<Output = Result<Out2, AgentError>> + Send, AndThen: Send + Fn(Out) -> R,

Apply a transformation function after the call has been successful. The transformation is applied with the result. Read more
source§

fn map<Out2, Map>(self, map: Map) -> MappedAsyncCaller<Out, Out2, Self, Map>
where Self: Sized + Send, Out2: for<'de> ArgumentDecoder<'de> + Send, Map: Send + Fn(Out) -> Out2,

Apply a transformation function after the call has been successful. Equivalent to .and_then(|x| async { map(x) }).
source§

impl<'agent, 'canister: 'agent> Debug for InstallCodeBuilder<'agent, 'canister>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'agent, 'canister> Freeze for InstallCodeBuilder<'agent, 'canister>

§

impl<'agent, 'canister> !RefUnwindSafe for InstallCodeBuilder<'agent, 'canister>

§

impl<'agent, 'canister> Send for InstallCodeBuilder<'agent, 'canister>

§

impl<'agent, 'canister> Sync for InstallCodeBuilder<'agent, 'canister>

§

impl<'agent, 'canister> Unpin for InstallCodeBuilder<'agent, 'canister>

§

impl<'agent, 'canister> !UnwindSafe for InstallCodeBuilder<'agent, 'canister>

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

§

type Output = T

Should always be Self
source§

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

§

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

§

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<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V