async fnส่งคืนชนิดที่ไม่ระบุชื่อที่ใช้Futureดังนั้นหากเราต้องการใช้เป็นโทรกลับเราต้องแปลงค่าส่งคืนเป็นวัตถุลักษณะ
ฉันพยายามเขียนฟังก์ชั่นการทำเช่นนี้ แต่ฉันมีปัญหาตลอดชีวิต
async fnจะคืนค่าอายุการใช้งานของพารามิเตอร์ทั้งหมดดังนั้นลายเซ็นของการติดต่อกลับยังต้อง ฉันจะเพิ่มอายุการใช้งานในค่าส่งคืนของการโทรกลับได้อย่างไร
use futures::future::{Future, FutureExt, LocalBoxFuture};
type Context = ();
type AsyncCb = Box<dyn for<'r> FnOnce(&'r Context) -> LocalBoxFuture<'r, ()>>;
fn normalize_async_cb<Fut: Future<Output = ()>>(f: for<'r> fn(&'r Context) -> Fut) -> AsyncCb
//                                                    how to add 'r for Fut?  ^^^
{
    let cb = move |ctx: &Context| f(ctx).boxed_local();
    Box::new(cb)
}
          
                  นอกจากนี้คุณหมายถึงอะไรโดย "โทรกลับ"? คุณสามารถให้ตัวอย่างที่แสดงว่าคุณต้องการโทรกลับประเภทนี้ได้ที่ไหน
                
                
                  
                    —
                    Coder-256 
                    
                  
                
              
normalize_async_cbตัวชี้ฟังก์ชัน?