pub struct AgentRuntime<'a> { /* private fields */ }Expand description
Runtime for interacting with a canister through an ic_agent::Agent.
This can be useful when, e.g., contacting a canister via ingress messages instead of via another
canister.
§Examples
Call the make_http_post_request endpoint on the example http_canister.
use ic_agent::agent::Agent;
use ic_agent_canister_runtime::AgentRuntime;
use ic_canister_runtime::Runtime;
let agent = Agent::builder().build().expect("Failed to initialize agent");
let runtime = AgentRuntime::new(&agent);
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<'a> AgentRuntime<'a>
impl<'a> AgentRuntime<'a>
Sourcepub fn new(agent: &'a Agent) -> Self
pub fn new(agent: &'a Agent) -> Self
Create a new AgentRuntime with the given Agent.
Trait Implementations§
Source§impl<'a> Clone for AgentRuntime<'a>
impl<'a> Clone for AgentRuntime<'a>
Source§fn clone(&self) -> AgentRuntime<'a>
fn clone(&self) -> AgentRuntime<'a>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<'a> Debug for AgentRuntime<'a>
impl<'a> Debug for AgentRuntime<'a>
Source§impl Runtime for AgentRuntime<'_>
impl Runtime for AgentRuntime<'_>
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.
Auto Trait Implementations§
impl<'a> Freeze for AgentRuntime<'a>
impl<'a> !RefUnwindSafe for AgentRuntime<'a>
impl<'a> Send for AgentRuntime<'a>
impl<'a> Sync for AgentRuntime<'a>
impl<'a> Unpin for AgentRuntime<'a>
impl<'a> !UnwindSafe for AgentRuntime<'a>
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