Всем добрый день и хорошего дня!
Имеется вопрос по правильности реализации враппера вокруг структур, имеющих асинхронный метод.
Сначала пара слов про то, что это и зачем оно нужно. Сейчас для каждой структуры в библиотеке реализуется специальный трейт Request, отвечающий как раз за исполнение запроса, связанного с этой структурой. В итоге клиенту нужно писать что-то вроде:
SendMessage::new().disable_notification(true).send().await;
Для того, чтобы избавиться от явного прописывания send() для каждого запроса, так как семантически вернее представлять его как раз как футуру, было принято решение написать враппер вокруг любого impl Request, для того, чтобы можно было во внутренностях возвращать пользователю этот враппер и позволить писать что-то вроде такого:
let mut send_message = bot.send_message();
send_message.disable_notification(true);
send_message.await;
Соответственно вопрос, насколько будет верна такая реализация?
Ссылка:
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=9a9bff393b6f7d03ca946bf9efe20663заранее спасибо.