Skip to main content

ClientConfig

Struct ClientConfig 

Source
pub struct ClientConfig {
    pub token: String,
    pub api_base_url: String,
    pub timeout: Duration,
    pub max_retries: u8,
}
Expand description

Configuration for BotClient.

Use the builder methods to customise behaviour, then pass the config to BotClient::new.

§Example

use std::time::Duration;

let config = ClientConfig::new("123456:ABC...")?
    .api_base_url("http://localhost:8081") // local Bot API server
    .timeout(Duration::from_secs(60))
    .max_retries(5);

Fields§

§token: String

Bot token used to authenticate with the Telegram API.

§api_base_url: String

Base URL of the Bot API server (default: https://api.telegram.org).

§timeout: Duration

Per-request HTTP timeout.

§max_retries: u8

Maximum number of automatic retries on flood control responses.

Applies to JSON requests only — see ClientConfig::max_retries.

Implementations§

Source§

impl ClientConfig

Source

pub fn new(token: impl Into<String>) -> Result<Self>

Creates a new ClientConfig with the given bot token and default settings.

Source

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

Sets a custom base URL for API requests, e.g. for a local Bot API server.

Source

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

Sets a custom timeout for API requests (default 30 seconds).

Source

pub fn max_retries(self, n: u8) -> Self

Sets the maximum number of retries on HTTP 429 (flood control) errors (default 3).

§Uploads are not retried

This budget governs requests sent as JSON, which is every call that does not upload file bytes — including media sent by file_id or URL. A byte upload is never retried, whatever this is set to: the multipart form is consumed when the request is sent and cannot be rebuilt for a second attempt.

So max_retries(5) means five attempts for send_message, and one for a send_photo carrying InputFile::Bytes. A bot that uploads under load should expect Error::RateLimit on the first flood-control response and back off itself, using Error::retry_after.

Trait Implementations§

Source§

impl Clone for ClientConfig

Source§

fn clone(&self) -> ClientConfig

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ClientConfig

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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<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