Skip to main content

ClientBuilder

Struct ClientBuilder 

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

Builder for Client. Explicit settings win over environment variables; empty or whitespace-only environment values are ignored.

Its Debug output hides the API key and any credential-bearing header.

Implementations§

Source§

impl ClientBuilder

Source

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

API key (else TYPESAFE_API_KEY). Surrounding whitespace is trimmed; an empty key, or one with whitespace, control or non-ASCII characters inside it, is rejected by build.

Source

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

API root (else TYPESAFE_BASE_URL, else https://api.typesafe.ai).

Source

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

Default model (else TYPESAFE_DEFAULT_MODEL, else jev-latest).

Source

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

Per-attempt timeout (default 10s).

Source

pub fn retry(self, policy: RetryPolicy) -> Self

Default retry policy.

Source

pub fn header(self, name: HeaderName, value: HeaderValue) -> Self

Extra header sent with every request. Authentication and SDK identification headers cannot be overridden.

Source

pub fn record(self, dir: impl Into<PathBuf>) -> Self

Write each successful System One response to <dir>/<key>.json (else TYPESAFE_RECORD). The directory is created if needed. See cassette.

Source

pub fn replay(self, dir: impl Into<PathBuf>) -> Self

Answer System One calls from <dir>/<key>.json instead of the network (else TYPESAFE_REPLAY); no API key is needed. A request that was never recorded fails with Error::ReplayMiss. See cassette.

Source

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

Available on crate feature reqwest-client only.

Use your own reqwest::Client (proxies, TLS, connection pools…). Requires the reqwest-client feature.

Source

pub fn build_blocking(self) -> Result<Client>

Available on crate feature blocking only.

Build a blocking::Client (feature blocking).

§Errors

As for build, plus Error::Config if the runtime cannot be started.

Source

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

Build the client.

§Errors

Error::Config if no API key is set (unless replaying) or it is malformed, the base URL is not an http(s) URL, the timeout is zero, the retry policy is invalid, both record and replay are set, or the record directory cannot be created. The cause, such as the std::io::Error or the URL parse error, is the error’s source().

Trait Implementations§

Source§

impl Debug for ClientBuilder

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for ClientBuilder

Source§

fn default() -> Self

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> 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> 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 = !

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