pub struct ClientBuilder<T> { /* private fields */ }Expand description
A client builder that can be used to fluently provide configuration settings used to construct the control interface client
Implementations§
source§impl ClientBuilder<DirectKvStore>
impl ClientBuilder<DirectKvStore>
sourcepub fn new(nc: Client) -> ClientBuilder<DirectKvStore>
pub fn new(nc: Client) -> ClientBuilder<DirectKvStore>
Creates a new client builder using the given client, set up to use the
DirectKvStore for bucket operations
source§impl ClientBuilder<CachedKvStore>
impl ClientBuilder<CachedKvStore>
sourcepub fn new_caching(nc: Client) -> ClientBuilder<CachedKvStore>
pub fn new_caching(nc: Client) -> ClientBuilder<CachedKvStore>
Creates a new client builder using the given client, set up to use the
CachedKvStore for bucket operations
source§impl<T: KvStore + Build + Clone> ClientBuilder<T>
impl<T: KvStore + Build + Clone> ClientBuilder<T>
sourcepub fn new_generic(nc: Client) -> ClientBuilder<T>
pub fn new_generic(nc: Client) -> ClientBuilder<T>
Creates a new client builder using the given client, set up to use the generic key value
store type T for bucket operations. This is useful for times when you need to specify a
type dynamically
use wasmcloud_control_interface::{kv::CachedKvStore, ClientBuilder};
let nc = async_nats::connect("localhost:4222").await.unwrap();
let client = ClientBuilder::<CachedKvStore>::new_generic(nc.clone()).build().await.unwrap();
// or
let builder: ClientBuilder<CachedKvStore> = ClientBuilder::new_generic(nc);
let client = builder.build().await.unwrap();This function is not just new because we want to preserve the default behavior of the
direct KV store behind the already used new function.
sourcepub async fn build(self) -> Result<Client<T>, Box<dyn Error + Send + Sync>>
pub async fn build(self) -> Result<Client<T>, Box<dyn Error + Send + Sync>>
Completes the generation of a control interface client. This function is async because it
will attempt to locate and attach to a metadata key-value bucket (LATTICEDATA_{prefix})
when starting. If this bucket doesn’t exist (meaning no hosts have actually run in that
lattice), than an error will be returned
source§impl<T> ClientBuilder<T>
impl<T> ClientBuilder<T>
sourcepub fn topic_prefix(self, prefix: impl Into<String>) -> ClientBuilder<T>
pub fn topic_prefix(self, prefix: impl Into<String>) -> ClientBuilder<T>
Sets the topic prefix for the NATS topic used for all control requests. Not to be confused with lattice ID/prefix
sourcepub fn lattice_prefix(self, prefix: impl Into<String>) -> ClientBuilder<T>
pub fn lattice_prefix(self, prefix: impl Into<String>) -> ClientBuilder<T>
The lattice ID/prefix used for this client. If this function is not invoked, the prefix will
be set to default
sourcepub fn rpc_timeout(self, timeout: Duration) -> ClientBuilder<T>
👎Deprecated since 0.30.0: please use timeout instead
pub fn rpc_timeout(self, timeout: Duration) -> ClientBuilder<T>
timeout insteadSets the timeout for standard calls and RPC invocations used by the client. If not set, the default will be 2 seconds
sourcepub fn timeout(self, timeout: Duration) -> ClientBuilder<T>
pub fn timeout(self, timeout: Duration) -> ClientBuilder<T>
Sets the timeout for control interface requests issued by the client. If not set, the default will be 2 seconds
sourcepub fn auction_timeout(self, timeout: Duration) -> ClientBuilder<T>
pub fn auction_timeout(self, timeout: Duration) -> ClientBuilder<T>
Sets the timeout for auction (scatter/gather) operations. If not set, the default will be 5 seconds
sourcepub fn js_domain(self, domain: impl Into<String>) -> ClientBuilder<T>
pub fn js_domain(self, domain: impl Into<String>) -> ClientBuilder<T>
Sets the JetStream domain for this client, which can be critical for locating the right
key-value bucket for lattice metadata storage. If this is skipped, then the JS domain will
be None