Вы должны либо указать конкретный тип (не признак), который реализует Debug
, либо вы должны полагаться на объявление impl Trait
, но убедитесь, что вы также реализуете Debug
.
extern crate futures;
use futures::{Future, future::FutureResult};
use std::fmt::Debug;
fn get_default_future<'s>() -> FutureResult<&'s str, ()> {
futures::future::ok::<_, ()>("foo")
}
fn get_printable_future() -> impl Future + Debug {
futures::future::ok::<_, ()>("bar")
}
fn main() {
println!("{:?}", get_default_future());
println!("{:?}", get_printable_future());
}
Сама черта не требует базовой структуры для реализации Debug
.Даже если структура реализует Debug, вы должны убедиться при возврате признака вместо структуры, что вы объявляете , чтобы она реализовала Debug
.Затем он должен скомпилироваться.