From f9c192aad0e15eac9106f097d5948988bc796b54 Mon Sep 17 00:00:00 2001 From: Temirkhan Myrzamadi Date: Sun, 26 Jul 2020 23:37:56 +0600 Subject: [PATCH] Fix the docs --- README.md | 6 ++++++ examples/dialogue_bot/Cargo.toml | 1 - examples/dialogue_bot/src/dialogue/mod.rs | 10 ++++++++-- .../dialogue_bot/src/dialogue/states/receive_age.rs | 1 + .../src/dialogue/states/receive_full_name.rs | 1 + .../src/dialogue/states/receive_location.rs | 1 + examples/dialogue_bot/src/dialogue/states/start.rs | 1 + examples/dialogue_bot/src/main.rs | 7 ------- src/dispatching/dialogue/mod.rs | 7 ++++++- 9 files changed, 24 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index e9b5fd93..d44b6be9 100644 --- a/README.md +++ b/README.md @@ -203,6 +203,12 @@ pub enum Dialogue { ReceiveAge(ReceiveAgeState), ReceiveLocation(ReceiveLocationState), } + +impl Default for Dialogue { + fn default() -> Self { + Self::Start(StartState) + } +} ``` ([dialogue_bot/src/dialogue/states/start.rs](https://github.com/teloxide/teloxide/blob/master/examples/dialogue_bot/src/dialogue/states/start.rs)) diff --git a/examples/dialogue_bot/Cargo.toml b/examples/dialogue_bot/Cargo.toml index 5de57e1b..d032ff95 100644 --- a/examples/dialogue_bot/Cargo.toml +++ b/examples/dialogue_bot/Cargo.toml @@ -15,7 +15,6 @@ frunk-core = { git = "https://github.com/Hirrolot/frunk", branch = "append-to-hl pretty_env_logger = "0.4.0" futures = "0.3.5" -smart-default = "0.6.0" derive_more = "0.99.9" teloxide = { path = "../../", features = ["frunk"] } teloxide-macros = { git = "http://github.com/teloxide/teloxide-macros", branch = "master" } diff --git a/examples/dialogue_bot/src/dialogue/mod.rs b/examples/dialogue_bot/src/dialogue/mod.rs index e0ffa03c..176474b6 100644 --- a/examples/dialogue_bot/src/dialogue/mod.rs +++ b/examples/dialogue_bot/src/dialogue/mod.rs @@ -3,13 +3,19 @@ mod states; use crate::dialogue::states::{ ReceiveAgeState, ReceiveFullNameState, ReceiveLocationState, StartState, }; +use derive_more::From; use teloxide_macros::Transition; -#[derive(Transition, SmartDefault, From)] +#[derive(Transition, From)] pub enum Dialogue { - #[default] Start(StartState), ReceiveFullName(ReceiveFullNameState), ReceiveAge(ReceiveAgeState), ReceiveLocation(ReceiveLocationState), } + +impl Default for Dialogue { + fn default() -> Self { + Self::Start(StartState) + } +} diff --git a/examples/dialogue_bot/src/dialogue/states/receive_age.rs b/examples/dialogue_bot/src/dialogue/states/receive_age.rs index b1f66b00..404258c9 100644 --- a/examples/dialogue_bot/src/dialogue/states/receive_age.rs +++ b/examples/dialogue_bot/src/dialogue/states/receive_age.rs @@ -2,6 +2,7 @@ use crate::dialogue::{ states::receive_location::ReceiveLocationState, Dialogue, }; use teloxide::prelude::*; +use teloxide_macros::teloxide; #[derive(Generic)] pub struct ReceiveAgeState { diff --git a/examples/dialogue_bot/src/dialogue/states/receive_full_name.rs b/examples/dialogue_bot/src/dialogue/states/receive_full_name.rs index 557f0d38..0d963d4e 100644 --- a/examples/dialogue_bot/src/dialogue/states/receive_full_name.rs +++ b/examples/dialogue_bot/src/dialogue/states/receive_full_name.rs @@ -1,5 +1,6 @@ use crate::dialogue::{states::receive_age::ReceiveAgeState, Dialogue}; use teloxide::prelude::*; +use teloxide_macros::teloxide; #[derive(Generic)] pub struct ReceiveFullNameState; diff --git a/examples/dialogue_bot/src/dialogue/states/receive_location.rs b/examples/dialogue_bot/src/dialogue/states/receive_location.rs index 87146dcf..7db8b851 100644 --- a/examples/dialogue_bot/src/dialogue/states/receive_location.rs +++ b/examples/dialogue_bot/src/dialogue/states/receive_location.rs @@ -1,5 +1,6 @@ use crate::dialogue::Dialogue; use teloxide::prelude::*; +use teloxide_macros::teloxide; #[derive(Generic)] pub struct ReceiveLocationState { diff --git a/examples/dialogue_bot/src/dialogue/states/start.rs b/examples/dialogue_bot/src/dialogue/states/start.rs index 08eeb6ea..2f448f72 100644 --- a/examples/dialogue_bot/src/dialogue/states/start.rs +++ b/examples/dialogue_bot/src/dialogue/states/start.rs @@ -1,5 +1,6 @@ use crate::dialogue::{states::ReceiveFullNameState, Dialogue}; use teloxide::prelude::*; +use teloxide_macros::teloxide; #[derive(Default)] pub struct StartState; diff --git a/examples/dialogue_bot/src/main.rs b/examples/dialogue_bot/src/main.rs index 3d117b9b..66a5f63a 100644 --- a/examples/dialogue_bot/src/main.rs +++ b/examples/dialogue_bot/src/main.rs @@ -17,15 +17,8 @@ #![allow(clippy::trivial_regex)] #![allow(dead_code)] -#[macro_use] -extern crate smart_default; -#[macro_use] -extern crate derive_more; #[macro_use] extern crate frunk; -extern crate frunk_core; -#[macro_use] -extern crate teloxide_macros; mod dialogue; diff --git a/src/dispatching/dialogue/mod.rs b/src/dispatching/dialogue/mod.rs index 7ab2c1d6..c179c667 100644 --- a/src/dispatching/dialogue/mod.rs +++ b/src/dispatching/dialogue/mod.rs @@ -88,7 +88,8 @@ //! // No panic because of std::convert::Infallible. //! let dialogue = dialogue.unwrap(); //! dialogue -//! .react(cx) +//! // Instead of () you can pass an arbitrary value, see below. +//! .react(cx, ()) //! .await //! .expect("Something wrong with the bot!") //! }, @@ -103,6 +104,10 @@ //! - `#[derive(Transition)]` implements [`Transition`] for `D`, if all the //! variants implement [`SubTransition`]. //! +//! `()` in `.react(cx, ())` is an arbitrary value, which you can pass into +//! subtransitions. Just append `ans: T` to the parameters of the +//! subtransitions to pass a differen type. +//! //! See [examples/dialogue_bot] as a real example. //! //! [`Transition`]: crate::dispatching::dialogue::Transition