Support for async, requires "task locals" which are commonly implemented by wrapping futures and using thread locals. Prototype here (https://github.com/BVE-Reborn/profiling-futures) - this is something that might could be added later or exist as a separate crate.
A macro like puffin::profile_function! (https://docs.rs/puffin/0.4.0/puffin/macro.profile_function.html). This accomplishes mostly the same thing as #[profiling::function] but requires fewer dependencies, which is nice! However, it introduces runtime overhead. Maybe as support for const functions in rust improves, rust/llvm could optimize the cost out. It's also something that can be done in an external crate or end-user's code.
I don't think releasing 1.0 will block us from making any of these improvements in the future if we choose to do so.
This crate has been API-stable since release 4 months ago. I've asked around for feedback before going 1.0 and wanted to note it here:
puffin::profile_function!
(https://docs.rs/puffin/0.4.0/puffin/macro.profile_function.html). This accomplishes mostly the same thing as#[profiling::function]
but requires fewer dependencies, which is nice! However, it introduces runtime overhead. Maybe as support for const functions in rust improves, rust/llvm could optimize the cost out. It's also something that can be done in an external crate or end-user's code.I don't think releasing 1.0 will block us from making any of these improvements in the future if we choose to do so.