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_background_dynamic_routing(self) -> Self
pub fn with_background_dynamic_routing(self) -> Self
Set the dynamic transport layer for the Agent, performing continuous discovery of the API boundary nodes
and routing traffic via them based on latency. Cannot be set together with with_route_provider.
See DynamicRouteProvider if more customization is needed such as polling intervals.
Sourcepub fn with_url<S: Into<String>>(self, url: S) -> Self
pub fn with_url<S: Into<String>>(self, url: S) -> Self
Set the URL of the Agent. Either this or with_route_provider must be called (but not both).
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: Duration) -> Self
pub fn with_ingress_expiry(self, ingress_expiry: 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_arc_http_middleware(self, service: Arc<dyn HttpService>) -> Self
pub fn with_arc_http_middleware(self, service: Arc<dyn HttpService>) -> Self
Provide a custom reqwest-compatible HTTP service, e.g. to add per-request headers for custom boundary nodes.
Most users will not need this and should use with_http_client. Cannot be called with with_http_client.
The trait is automatically implemented for any tower::Service impl matching the one reqwest::Client uses,
including reqwest-middleware. This is a low-level interface, and direct implementations must provide all automatic retry logic.
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.
Sourcepub fn with_max_polling_time(self, max_polling_time: Duration) -> Self
pub fn with_max_polling_time(self, max_polling_time: Duration) -> Self
Set the maximum time to wait for a response from the replica.