代码之家  ›  专栏  ›  技术社区  ›  Aditya Singh

如何打印未来的调试值?

  •  0
  • Aditya Singh  · 技术社区  · 6 年前

    ^^^^^^^^ `futures::Future<Item=hyper::Response, Error=hyper::Error>` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug`
    

    对于下面的代码

    #[cfg(test)]
    println!(">>>>>>>> Future value returned {:?}", future);
    

    1 回复  |  直到 6 年前
        1
  •  0
  •   fyaa    6 年前

    必须指定实现 Debug 或者你必须依靠 impl Trait 调试 .

    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());
    }
    

    调试 声明 it实施 调试 . 然后应该编译。