Struct ic_agent::agent::AgentBuilder
source · pub struct AgentBuilder { /* private fields */ }Expand description
A builder for an Agent.
Implementations§
source§impl AgentBuilder
impl AgentBuilder
sourcepub fn build(self) -> Result<Agent, AgentError>
pub fn build(self) -> Result<Agent, AgentError>
Create an instance of Agent with the information from this builder.
sourcepub fn with_nonce_factory(self, nonce_factory: NonceFactory) -> AgentBuilder
pub fn with_nonce_factory(self, nonce_factory: NonceFactory) -> AgentBuilder
Add a NonceFactory to this Agent. By default, no nonce is produced.
sourcepub fn with_nonce_generator<N: 'static + NonceGenerator>(
self,
nonce_factory: N,
) -> AgentBuilder
pub fn with_nonce_generator<N: 'static + NonceGenerator>( self, nonce_factory: N, ) -> AgentBuilder
Same as Self::with_nonce_factory, but for any NonceGenerator type
sourcepub fn with_arc_nonce_generator(
self,
nonce_factory: Arc<dyn NonceGenerator>,
) -> AgentBuilder
pub fn with_arc_nonce_generator( self, nonce_factory: Arc<dyn NonceGenerator>, ) -> AgentBuilder
Same as Self::with_nonce_generator, but reuses an existing Arc.
sourcepub fn with_identity<I>(self, identity: I) -> Selfwhere
I: 'static + Identity,
pub fn with_identity<I>(self, identity: I) -> Selfwhere
I: 'static + Identity,
Add an identity provider for signing messages. This is required.
sourcepub fn with_boxed_identity(self, identity: Box<dyn Identity>) -> Self
pub fn with_boxed_identity(self, identity: Box<dyn Identity>) -> Self
Same as Self::with_identity, but reuses an existing box
sourcepub fn with_arc_identity(self, identity: Arc<dyn Identity>) -> Self
pub fn with_arc_identity(self, identity: Arc<dyn Identity>) -> Self
Same as Self::with_identity, but reuses an existing Arc
sourcepub fn with_ingress_expiry(self, ingress_expiry: Option<Duration>) -> Self
pub fn with_ingress_expiry(self, ingress_expiry: Option<Duration>) -> Self
Provides a default ingress expiry. This is the delta that will be applied at the time an update or query is made. The default expiry cannot be a fixed system time. This is also used when checking certificate timestamps.
The timestamp corresponding to this duration may be rounded in order to reduce cache misses. The current implementation rounds to the nearest minute if the expiry is more than a minute, but this is not guaranteed.
sourcepub fn with_verify_query_signatures(self, verify_query_signatures: bool) -> Self
pub fn with_verify_query_signatures(self, verify_query_signatures: bool) -> Self
Allows disabling query signature verification. Query signatures improve resilience but require a separate read-state call to fetch node keys.
sourcepub fn with_max_concurrent_requests(
self,
max_concurrent_requests: usize,
) -> Self
pub fn with_max_concurrent_requests( self, max_concurrent_requests: usize, ) -> Self
Sets the maximum number of requests that the agent will make concurrently. The replica is configured to only permit 50 concurrent requests per client. Set this value lower if you have multiple agents, to avoid the slowdown of retrying any 429 errors.
sourcepub fn with_route_provider(self, provider: impl RouteProvider + 'static) -> Self
pub fn with_route_provider(self, provider: impl RouteProvider + 'static) -> Self
Add a RouteProvider to this agent, to provide the URLs of boundary nodes.
sourcepub fn with_arc_route_provider(self, provider: Arc<dyn RouteProvider>) -> Self
pub fn with_arc_route_provider(self, provider: Arc<dyn RouteProvider>) -> Self
Same as Self::with_route_provider, but reuses an existing Arc.
sourcepub fn with_http_client(self, client: Client) -> Self
pub fn with_http_client(self, client: Client) -> Self
Provide a pre-configured HTTP client to use. Use this to set e.g. HTTP timeouts or proxy configuration.
sourcepub fn with_max_tcp_error_retries(self, retries: usize) -> Self
pub fn with_max_tcp_error_retries(self, retries: usize) -> Self
Retry up to the specified number of times upon encountering underlying TCP errors.
sourcepub fn with_max_response_body_size(self, max_size: usize) -> Self
pub fn with_max_response_body_size(self, max_size: usize) -> Self
Don’t accept HTTP bodies any larger than max_size bytes.