//! Make cool Telegram bots with Rust easily. Here is a simple echo bot:
//!
//! ```no_run
//! use tbot::prelude::*;
//!
//! let mut bot = tbot::bot!("BOT_TOKEN").event_loop();
//!
//! bot.text(|context| {
//! let reply = context
//! .send_message(&context.text.value)
//! .into_future()
//! .map_err(|err| {
//! dbg!(err);
//! });
//!
//! tbot::spawn(reply);
//! });
//!
//! bot.polling().start();
//! ```
//!
//! If you're new to `tbot`, we recommend you go through the [tutorial] first.
//! We also have several [How-to guides][how-to] with snippets to solve your
//! problems.
//!
//! If you have a question, ask it in [our group] on Telegram. If you find
//! a bug, fill an issue on either our [GitLab] or [GitHub] repository.
//!
//! [our group]: t.me/tbot_group
//! [tutorial]: https://gitlab.com/SnejUgal/tbot/wikis/Tutorial
//! [how-to]: https://gitlab.com/SnejUgal/tbot/wikis/How-to
//! [GitLab]: https://gitlab.com/SnejUgal/tbot
//! [GitHub]: https://github.com/SnejUgal/tbot
// can't do much
use ;
pub use ;
use ;
/// A wrapper around `tokio::run` without `F::Item: ()`.
///
/// When calling an API method, you'll most likely throw away its result.
/// However, `tokio` requires that `F::Item` be `()`. `tbot` provides
/// a thin wrapper around `tokio::run` that maps `F::Item` to `()`.
/// On the other hand, `tbot` still requires that you handle possible errors
/// properly before running a future.
/// A wrapper around `tokio::spawn` without `F::Item: ()`.
///
/// When calling an API method, you'll most likely throw away its result.
/// However, `tokio` requires that `F::Item` be `()`. `tbot` provides
/// a thin wrapper around `tokio::spawn` that maps `F::Item` to `()`.
/// On the other hand, `tbot` still requires that you handle possible errors
/// properly before running a future.