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

A builder to configure a new Client with a set of recommended tower middleware.

Example

use vtubestudio::{Client, ClientEvent};

// An auth token from a previous successful authentication request
let stored_token = Some("...".to_string());

let (mut client, mut events) = Client::builder()
    .authentication("Plugin name", "Developer name", None)
    .auth_token(stored_token)
    .build_tungstenite();

tokio::spawn(async move {
    while let Some(event) = events.next().await {
        match event {
            ClientEvent::NewAuthToken(token) =>
               println!("Got new token: {token}"),
            _ =>
               println!("Received event {:?}", event),
        }
    }
});

Implementations

Creates new builder with default values.

Available on crate feature tokio-tungstenite only.

Consumes the builder and initializes a Client and ClientEventStream using tokio_tungstenite as the underlying websocket transport library.

If this is provided, whenever the underlying service encounters an authentication error, it will try to obtain a new auth token and retry the request.

Sets the websocket URL. The default value is ws://localhost:8001.

Initial token to use for reauthentication (if authentication is provided). This should be the result of a previous successful authentication attempt.

Retry requests on disconnect. The default value is true.

The max number of outstanding requests/responses.

The default value is 128.

The max capacity of the ClientEventStream buffer.

This represents the max number of unacknowledged new events before the client stops sending them.

The default value is 128.

Consumes the builder and initializes a Client and ClientEventStream using a custom [Service].

Note the ClientEventStream will only yield ClientEvent::NewAuthToken events. To receive all events, use ClientBuilder::build_connector.

Consumes the builder and initializes a Client and ClientEventStream with a connector.

The input connector should be a MakeTransport that meets the requirements of Reconnect.

Consumes the builder and initializes a Client and ClientEventStream with a reconnecting service.

The input service should be a MakeService that satisfies the requirements of Reconnect.

Note the ClientEventStream will only yield ClientEvent::NewAuthToken events. To receive all events, use ClientBuilder::build_connector.

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

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

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The alignment of pointer.
The type for initializers.
Initializes a with the given initializer. Read more
Dereferences the given pointer. Read more
Mutably dereferences the given pointer. Read more
Drops the object pointed to by the given pointer. Read more
Should always be Self
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.
Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more