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)
}
এছাড়াও, "কলব্যাক" বলতে কী বোঝ? আপনি যেখানে এই ধরণের কলব্যাকের প্রয়োজন হবে তা বোঝাতে একটি উদাহরণ সরবরাহ করতে পারেন?
—
কোডার -256
normalize_async_cb
একটি ফাংশন পয়েন্টার ইনপুট ?