Function teloxide::dispatching::dialogue::enter
source · pub fn enter<Upd, S, D, Output>(
) -> Handler<'static, DependencyMap, Output, DpHandlerDescription>where
S: Storage<D> + ?Sized + Send + Sync + 'static,
<S as Storage<D>>::Error: Debug + Send,
D: Default + Send + Sync + 'static,
Upd: GetChatId + Clone + Send + Sync + 'static,
Output: Send + Sync + 'static,
Expand description
Enters a dialogue context.
A call to this function is the same as dptree::entry().enter_dialogue()
.
See HandlerExt::enter_dialogue
.
Dependency requirements
Arc<S>
Upd
Examples found in repository?
examples/purchase.rs (line 81)
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
fn schema() -> UpdateHandler<Box<dyn std::error::Error + Send + Sync + 'static>> {
use dptree::case;
let command_handler = teloxide::filter_command::<Command, _>()
.branch(
case![State::Start]
.branch(case![Command::Help].endpoint(help))
.branch(case![Command::Start].endpoint(start)),
)
.branch(case![Command::Cancel].endpoint(cancel));
let message_handler = Update::filter_message()
.branch(command_handler)
.branch(case![State::ReceiveFullName].endpoint(receive_full_name))
.branch(dptree::endpoint(invalid_state));
let callback_query_handler = Update::filter_callback_query().branch(
case![State::ReceiveProductChoice { full_name }].endpoint(receive_product_selection),
);
dialogue::enter::<Update, InMemStorage<State>, State, _>()
.branch(message_handler)
.branch(callback_query_handler)
}