pub struct IcRuntime { /* private fields */ }Expand description
Runtime when interacting with a canister running on the Internet Computer.
§Examples
Call the make_http_post_request endpoint on the example http_canister.
use candid::Principal;
use ic_canister_runtime::{IcRuntime, Runtime, StubRuntime};
let runtime = IcRuntime::new();
let http_request_result: String = runtime
.update_call(canister_id, "make_http_post_request", (), 0)
.await
.expect("Call to `http_canister` failed");
assert!(http_request_result.contains("Hello, World!"));
assert!(http_request_result.contains("\"X-Id\": \"42\""));Implementations§
Source§impl IcRuntime
impl IcRuntime
Sourcepub fn allow_calls_when_stopping(self, allow: bool) -> Self
pub fn allow_calls_when_stopping(self, allow: bool) -> Self
Allow inter-canister calls when the canister is stopping.
Allowing inter-canister calls when the canister making the calls is stopping
could prevent that canister from being stopped and therefore upgraded.
This is because the stopping state does not prevent the canister itself from issuing
new calls (see the specification on stop_canister).
Trait Implementations§
Source§impl Runtime for IcRuntime
impl Runtime for IcRuntime
Source§fn update_call<'life0, 'life1, 'async_trait, In, Out>(
&'life0 self,
id: Principal,
method: &'life1 str,
args: In,
cycles: u128,
) -> Pin<Box<dyn Future<Output = Result<Out, IcError>> + Send + 'async_trait>>where
In: ArgumentEncoder + Send + 'async_trait,
Out: CandidType + DeserializeOwned + 'async_trait,
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_call<'life0, 'life1, 'async_trait, In, Out>(
&'life0 self,
id: Principal,
method: &'life1 str,
args: In,
cycles: u128,
) -> Pin<Box<dyn Future<Output = Result<Out, IcError>> + Send + 'async_trait>>where
In: ArgumentEncoder + Send + 'async_trait,
Out: CandidType + DeserializeOwned + 'async_trait,
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Defines how asynchronous inter-canister update calls are made.
Source§fn query_call<'life0, 'life1, 'async_trait, In, Out>(
&'life0 self,
id: Principal,
method: &'life1 str,
args: In,
) -> Pin<Box<dyn Future<Output = Result<Out, IcError>> + Send + 'async_trait>>where
In: ArgumentEncoder + Send + 'async_trait,
Out: CandidType + DeserializeOwned + 'async_trait,
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn query_call<'life0, 'life1, 'async_trait, In, Out>(
&'life0 self,
id: Principal,
method: &'life1 str,
args: In,
) -> Pin<Box<dyn Future<Output = Result<Out, IcError>> + Send + 'async_trait>>where
In: ArgumentEncoder + Send + 'async_trait,
Out: CandidType + DeserializeOwned + 'async_trait,
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Defines how asynchronous inter-canister query calls are made.
impl Copy for IcRuntime
impl Eq for IcRuntime
impl StructuralPartialEq for IcRuntime
Auto Trait Implementations§
impl Freeze for IcRuntime
impl RefUnwindSafe for IcRuntime
impl Send for IcRuntime
impl Sync for IcRuntime
impl Unpin for IcRuntime
impl UnsafeUnpin for IcRuntime
impl UnwindSafe for IcRuntime
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more