// *** before: ***
// трейт с асинхронным методом требовал стороннего макроса,
// а каждый вызов - короба с фьючерсом внутри
#[async_trait]
trait Storage {
async fn load(&self, id: u32) -> String;
}
// *** in version 1.75: ***
trait Storage {
async fn load(&self, id: u32) -> String;
}
struct Memory;
impl Storage for Memory {
async fn load(&self, id: u32) -> String {
format!("запись {id}")
}
}