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

A builder for an install_chunked_code call.

Implementations§

source§

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

source

pub fn builder( canister: &'canister Canister<'agent>, target_canister: Principal, wasm_module_hash: ChunkHash ) -> Self

Create an InstallChunkedCodeBuilder.

source

pub fn with_chunk_hashes(self, chunk_hashes: Vec<ChunkHash>) -> Self

Set the chunks to install. These must previously have been set with ManagementCanister::upload_chunk.

source

pub fn with_storage_canister(self, storage_canister: Principal) -> Self

Set the canister to pull uploaded chunks from. By default this is the same as the target canister.

source

pub fn with_arg(self, argument: impl CandidType) -> Self

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, argument: 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, argument: Vec<u8>) -> Self

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

source

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

Set 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 the call. This is equivalent to AsyncCall::call.

source

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

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

Trait Implementations§

source§

impl<'agent, 'canister: 'agent> AsyncCall<()> for InstallChunkedCodeBuilder<'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> Debug for InstallChunkedCodeBuilder<'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> !RefUnwindSafe for InstallChunkedCodeBuilder<'agent, 'canister>

§

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

§

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

§

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

§

impl<'agent, 'canister> !UnwindSafe for InstallChunkedCodeBuilder<'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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more