async в типажах

В настоящий момент async fn не могут использоваться в типажах. Причиной является большая сложность, но снятие этого ограничения находится в планах на будущее.

Однако вы можете обойти это ограничение при помощи пакета async_trait с crates.io.

Заметьте, что использование этих методов типажей приведёт к выделениям памяти в куче для каждого вызова функции. Это не значительная стоимость для большинства приложений, но следует это учитывать при принятии решения использовать данную функциональность в публичном API низкоуровневых функций, которые будут вызываться миллион раз в секунду.