AgentBuilder

Struct AgentBuilder 

Source
pub struct AgentBuilder { /* private fields */ }
Expand description

A builder for an Agent.

Implementations§

Source§

impl AgentBuilder

Source

pub fn build(self) -> Result<Agent, AgentError>

Create an instance of Agent with the information from this builder.

Source

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.

Source

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).

Source

pub fn with_nonce_factory(self, nonce_factory: NonceFactory) -> AgentBuilder

Add a NonceFactory to this Agent. By default, no nonce is produced.

Source

pub fn with_nonce_generator<N: 'static + NonceGenerator>( self, nonce_factory: N, ) -> AgentBuilder

Same as Self::with_nonce_factory, but for any NonceGenerator type

Source

pub fn with_arc_nonce_generator( self, nonce_factory: Arc<dyn NonceGenerator>, ) -> AgentBuilder

Same as Self::with_nonce_generator, but reuses an existing Arc.

Source

pub fn with_identity<I>(self, identity: I) -> Self
where I: 'static + Identity,

Add an identity provider for signing messages. This is required.

Source

pub fn with_boxed_identity(self, identity: Box<dyn Identity>) -> Self

Same as Self::with_identity, but reuses an existing box

Source

pub fn with_arc_identity(self, identity: Arc<dyn Identity>) -> Self

Same as Self::with_identity, but reuses an existing Arc

Source

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.

Source

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.

Source

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.

Source

pub fn with_route_provider(self, provider: impl RouteProvider + 'static) -> Self

Add a RouteProvider to this agent, to provide the URLs of boundary nodes.

Source

pub fn with_arc_route_provider(self, provider: Arc<dyn RouteProvider>) -> Self

Same as Self::with_route_provider, but reuses an existing Arc.

Source

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.

Source

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.

Source

pub fn with_max_tcp_error_retries(self, retries: usize) -> Self

Retry up to the specified number of times upon encountering underlying TCP errors.

Source

pub fn with_max_response_body_size(self, max_size: usize) -> Self

Don’t accept HTTP bodies any larger than max_size bytes.

Source

pub fn with_max_polling_time(self, max_polling_time: Duration) -> Self

Set the maximum time to wait for a response from the replica.

Trait Implementations§

Source§

impl Default for AgentBuilder

Source§

fn default() -> AgentBuilder

Returns the “default value” for a type. Read more

Auto Trait Implementations§

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.

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

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

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>,

Source§

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.
Source§

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

Source§

fn vzip(self) -> V

Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T