Hi, OpenDAL is currently developing an AwaitTreeLayer to give our users the ability to dump the execution tree at runtime: https://github.com/apache/incubator-opendal/pull/2623 The missing part here is that how can we add instrument for functions returns `Poll<T>`? For example, `AsyncRead` will have API like the following: ```rust pub trait AsyncRead { // Required method fn poll_read( self: Pin<&mut Self>, cx: &mut Context<'_>, buf: &mut [u8] ) -> Poll<Result<usize, Error>>; ``` Can we add instrument for every poll operations?