Skip to main content

ClientBuilder

Struct ClientBuilder 

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

Builds a ScopeDB client with an optional API key and custom HTTP client.

The API key is attached by the ScopeDB client itself, so callers can still provide a preconfigured reqwest client for TLS, proxy, timeout, and pooling settings.

Implementations§

Source§

impl ClientBuilder

Source

pub fn api_key(self, api_key: impl Into<String>) -> Self

Sets the ScopeDB API key sent as a sensitive Bearer credential.

This per-request value takes precedence over an Authorization default configured on the underlying HTTP client.

Examples found in repository?
examples/common/mod.rs (line 45)
34pub fn client() -> Result<Client, Box<dyn std::error::Error>> {
35    let api_key = std::env::var("SCOPEDB_API_KEY")
36        .ok()
37        .filter(|value| !value.is_empty())
38        .or_else(|| {
39            std::env::var("SCOPEDB_TOKEN")
40                .ok()
41                .filter(|value| !value.is_empty())
42        });
43    let mut builder = Client::builder(endpoint());
44    if let Some(api_key) = api_key {
45        builder = builder.api_key(api_key);
46    }
47    Ok(builder.build()?)
48}
Source

pub fn http_client(self, client: Client) -> Self

Uses a preconfigured compatible HTTP client.

Use the re-exported crate::reqwest version. Disable redirects and transport retries to prevent replaying writes; the SDK’s default client already does this.

use scopedb_client::reqwest;

let http_client = reqwest::Client::builder()
    .redirect(reqwest::redirect::Policy::none())
    .retry(reqwest::retry::never())
    .build()?;
Source

pub fn write_timeout(self, timeout: Duration) -> Self

Bounds each table append and Catalog mutation HTTP request, including reading the response body. Defaults to 30 seconds and must be finite and nonzero. This deadline cannot be disabled; increase it when writes need more time. The budget starts after local encoding, compression, and request preparation. Stream attempt_timeout settings override this default. A timeout does not roll back the write; its commit outcome can be unknown.

This is a per-attempt budget. Waiting for stream capacity, retry backoff, and the total duration of a flush or shutdown are outside it. Append timeouts are exposed through Error::write_details and are never automatically replayed.

Shorter timeouts on a custom HTTP client still apply.

Source

pub fn build(self) -> Result<Client, Error>

Validates the endpoint and authentication settings and builds the client.

Examples found in repository?
examples/common/mod.rs (line 47)
34pub fn client() -> Result<Client, Box<dyn std::error::Error>> {
35    let api_key = std::env::var("SCOPEDB_API_KEY")
36        .ok()
37        .filter(|value| !value.is_empty())
38        .or_else(|| {
39            std::env::var("SCOPEDB_TOKEN")
40                .ok()
41                .filter(|value| !value.is_empty())
42        });
43    let mut builder = Client::builder(endpoint());
44    if let Some(api_key) = api_key {
45        builder = builder.api_key(api_key);
46    }
47    Ok(builder.build()?)
48}

Trait Implementations§

Source§

impl Debug for ClientBuilder

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. 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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

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

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more