Struct telers::dispatcher::Dispatcher
source · pub struct Dispatcher<Client, Propagator, BackoffType = ExponentialBackoff<SystemClock>> { /* private fields */ }
Expand description
Dispatcher using to dispatch incoming updates to the main router
Implementations§
source§impl<Client, Propagator, BackoffType> Dispatcher<Client, Propagator, BackoffType>
impl<Client, Propagator, BackoffType> Dispatcher<Client, Propagator, BackoffType>
sourcepub fn new<Cfg, PropagatorService, InitError>(
main_router: Propagator,
bots: impl IntoIterator<Item = Bot<Client>>,
polling_timeout: Option<i64>,
backoff: BackoffType,
allowed_updates: impl IntoIterator<Item = UpdateType>,
) -> Selfwhere
BackoffType: Backoff,
Propagator: ToServiceProvider<Config = Cfg, ServiceProvider = PropagatorService, InitError = InitError>,
PropagatorService: PropagateEvent<Client>,
pub fn new<Cfg, PropagatorService, InitError>(
main_router: Propagator,
bots: impl IntoIterator<Item = Bot<Client>>,
polling_timeout: Option<i64>,
backoff: BackoffType,
allowed_updates: impl IntoIterator<Item = UpdateType>,
) -> Selfwhere
BackoffType: Backoff,
Propagator: ToServiceProvider<Config = Cfg, ServiceProvider = PropagatorService, InitError = InitError>,
PropagatorService: PropagateEvent<Client>,
Creates new dispatcher
§Arguments
main_router
- Main router, whose service will propagate updates to the other routers and its observersbots
- Bots that will be used for getting updates and sending requests. All bots use the same dispatcher, but each bot has the own polling process. Polling process gets updates and propagates them to the main propagator.polling_timeout
- Timeout in seconds for long pollingbackoff
- Backoff used for handling server-side errors and network errors (like connection reset or telegram server is down, etc.) and set timeout between requests to telegram serverallowed_updates
- List the types of updates you want your bot to receive. For example, specifyUpdateType::Message
,UpdateType::EditedChannelPost
,UpdateType::CallbackQuery
to only receive updates of these types.
source§impl<Client, Propagator> Dispatcher<Client, Propagator>where
Propagator: Default,
impl<Client, Propagator> Dispatcher<Client, Propagator>where
Propagator: Default,
source§impl<Client, Propagator, BackoffType> Dispatcher<Client, Propagator, BackoffType>where
Propagator: Default,
impl<Client, Propagator, BackoffType> Dispatcher<Client, Propagator, BackoffType>where
Propagator: Default,
pub fn builder_with_backoff( val: BackoffType, ) -> Builder<Client, Propagator, BackoffType>
Trait Implementations§
source§impl<Client, BackoffType, PropagatorService, Propagator, Cfg, InitError> ToServiceProvider for Dispatcher<Client, Propagator, BackoffType>where
Client: Send + Sync + 'static,
Propagator: ToServiceProvider<Config = Cfg, ServiceProvider = PropagatorService, InitError = InitError>,
impl<Client, BackoffType, PropagatorService, Propagator, Cfg, InitError> ToServiceProvider for Dispatcher<Client, Propagator, BackoffType>where
Client: Send + Sync + 'static,
Propagator: ToServiceProvider<Config = Cfg, ServiceProvider = PropagatorService, InitError = InitError>,
This converts all dependencies to ServiceProvider
and creates Arc<Service>
that contains converted ServiceProvider
s.
§type ServiceProvider = Arc<Service<Client, PropagatorService, BackoffType>>
type ServiceProvider = Arc<Service<Client, PropagatorService, BackoffType>>
The provider to which the service will be converted
source§fn to_service_provider(
self,
config: Self::Config,
) -> Result<Self::ServiceProvider, Self::InitError>
fn to_service_provider( self, config: Self::Config, ) -> Result<Self::ServiceProvider, Self::InitError>
Convert the service factory to the service Read more
Auto Trait Implementations§
impl<Client, Propagator, BackoffType> Freeze for Dispatcher<Client, Propagator, BackoffType>
impl<Client, Propagator, BackoffType> RefUnwindSafe for Dispatcher<Client, Propagator, BackoffType>
impl<Client, Propagator, BackoffType> Send for Dispatcher<Client, Propagator, BackoffType>
impl<Client, Propagator, BackoffType> Sync for Dispatcher<Client, Propagator, BackoffType>
impl<Client, Propagator, BackoffType> Unpin for Dispatcher<Client, Propagator, BackoffType>
impl<Client, Propagator, BackoffType> UnwindSafe for Dispatcher<Client, Propagator, BackoffType>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more