tele 0.1.23

Ergonomic Telegram Bot API SDK for Rust, built on reqx
Documentation
use std::time::Duration;

use serde::Serialize;
use serde::de::DeserializeOwned;

use crate::client::RetryConfig;
use crate::types::advanced::{AdvancedAnswerWebAppQueryRequest, AdvancedRequest};
use crate::types::bot::User;
use crate::types::chat::{
    ChatAdministratorCapability, ChatMember, GetChatAdministratorsRequest, GetChatMemberRequest,
};
use crate::types::command::{
    BotCommand, BotCommandScope, GetMyCommandsRequest, SetMyCommandsRequest,
};
use crate::types::common::{ChatId, MessageId, NumericChatId, ParseMode, UserId};
use crate::types::message::{
    ChatAction, DiceEmoji, InputMediaGroupItem, InputPollMedia, InputPollOption, Message,
    MessageEntity, Poll, PollKind, SendAnimationRequest, SendAudioRequest, SendChatActionRequest,
    SendContactRequest, SendDiceRequest, SendDocumentRequest, SendLocationRequest,
    SendMediaGroupRequest, SendMessageRequest, SendPhotoRequest, SendPollRequest, SendVenueRequest,
    SendVideoNoteRequest, SendVideoRequest, SendVoiceRequest, SentWebAppMessage, StopPollRequest,
};
use crate::types::sticker::SendStickerRequest;
use crate::types::telegram::{
    InlineKeyboardMarkup, InlineQueryResult, LinkPreviewOptions, MenuButton, ReplyMarkup,
    ReplyParameters, SuggestedPostParameters, WebAppData,
};
use crate::types::update::{AnswerCallbackQueryRequest, Update};
use crate::types::upload::{UploadFile, UploadPart};
use crate::{Error, Result};

#[cfg(feature = "_blocking")]
use crate::BlockingClient;
#[cfg(feature = "_async")]
use crate::Client;

mod app;
mod bootstrap;
mod control;
mod membership;
mod menu;
mod moderation;
mod raw;
mod setup;
mod support;
mod typed;
mod web_app;

#[cfg(feature = "_async")]
pub use app::{
    AnimationSendBuilder, AnimationUploadBuilder, AppApi, AudioSendBuilder, AudioUploadBuilder,
    CallbackAnswerBuilder, ChatActionBuilder, ContactSendBuilder, DiceSendBuilder,
    DocumentSendBuilder, DocumentUploadBuilder, LocationSendBuilder, MediaGroupSendBuilder,
    MediaGroupUploadBuilder, PhotoSendBuilder, PhotoUploadBuilder, PollSendBuilder,
    StickerSendBuilder, StickerUploadBuilder, StopPollBuilder, TextSendBuilder, VenueSendBuilder,
    VideoNoteSendBuilder, VideoNoteUploadBuilder, VideoSendBuilder, VideoUploadBuilder,
    VoiceSendBuilder, VoiceUploadBuilder,
};
#[cfg(feature = "_blocking")]
pub use app::{
    BlockingAnimationSendBuilder, BlockingAnimationUploadBuilder, BlockingAppApi,
    BlockingAudioSendBuilder, BlockingAudioUploadBuilder, BlockingCallbackAnswerBuilder,
    BlockingChatActionBuilder, BlockingContactSendBuilder, BlockingDiceSendBuilder,
    BlockingDocumentSendBuilder, BlockingDocumentUploadBuilder, BlockingLocationSendBuilder,
    BlockingMediaGroupSendBuilder, BlockingMediaGroupUploadBuilder, BlockingPhotoSendBuilder,
    BlockingPhotoUploadBuilder, BlockingPollSendBuilder, BlockingStickerSendBuilder,
    BlockingStickerUploadBuilder, BlockingStopPollBuilder, BlockingTextSendBuilder,
    BlockingVenueSendBuilder, BlockingVideoNoteSendBuilder, BlockingVideoNoteUploadBuilder,
    BlockingVideoSendBuilder, BlockingVideoUploadBuilder, BlockingVoiceSendBuilder,
    BlockingVoiceUploadBuilder,
};
pub use bootstrap::{
    BootstrapFetchStepReport, BootstrapGetMePolicy, BootstrapOutcome, BootstrapPlan,
    BootstrapReport, BootstrapRetryPolicy, BootstrapStepDiagnostics, BootstrapStepPhase,
    BootstrapStepStatus, BootstrapSyncStepReport, WebAppQueryPayload,
};
#[cfg(feature = "_blocking")]
pub use control::BlockingControlApi;
#[cfg(feature = "_async")]
pub use control::ControlApi;
#[cfg(feature = "_blocking")]
pub use membership::BlockingMembershipApi;
#[cfg(feature = "_async")]
pub use membership::MembershipApi;
pub use menu::MenuButtonConfig;
#[cfg(feature = "_blocking")]
pub use moderation::BlockingModerationApi;
#[cfg(feature = "_blocking")]
pub use moderation::BlockingModerationNoticeApi;
#[cfg(feature = "_async")]
pub use moderation::ModerationApi;
#[cfg(feature = "_async")]
pub use moderation::ModerationNoticeApi;
pub use moderation::{BanMemberOptions, RestrictMemberOptions};
#[cfg(feature = "_blocking")]
pub use raw::BlockingRawApi;
#[cfg(feature = "_async")]
pub use raw::RawApi;
#[cfg(feature = "_blocking")]
pub use setup::BlockingSetupApi;
#[cfg(feature = "_async")]
pub use setup::SetupApi;
#[cfg(feature = "bot")]
pub(crate) use support::is_unaddressable_reply_error;
#[cfg(feature = "_blocking")]
pub use typed::BlockingTypedApi;
#[cfg(feature = "_async")]
pub use typed::TypedApi;
#[cfg(feature = "_blocking")]
pub use web_app::BlockingWebAppApi;
#[cfg(feature = "_async")]
pub use web_app::WebAppApi;