2 // To use this library, enable one of the feature flags. Each backend implementation provides the
3 // exact same interface. Only one may be active at a time.
6 /// Proc macro for creating a scope around the function, using the name of the function for the
9 /// This must be done as a proc macro because tracing requires a const string
12 /// #[profiling::function]
13 /// fn my_function() {
17 #[cfg(feature = "procmacros")]
18 pub use profiling_procmacros::function;
20 #[cfg(feature = "profile-with-puffin")]
22 #[cfg(feature = "profile-with-puffin")]
24 #[cfg(feature = "profile-with-puffin")]
25 pub use puffin_impl::*;
27 #[cfg(feature = "profile-with-optick")]
29 #[cfg(feature = "profile-with-optick")]
31 #[cfg(feature = "profile-with-optick")]
32 pub use optick_impl::*;
34 #[cfg(feature = "profile-with-superluminal")]
35 pub use superluminal_perf;
36 #[cfg(feature = "profile-with-superluminal")]
37 mod superluminal_impl;
38 #[cfg(feature = "profile-with-superluminal")]
39 pub use superluminal_impl::*;
41 #[cfg(feature = "profile-with-tracing")]
43 #[cfg(feature = "profile-with-tracing")]
45 #[cfg(feature = "profile-with-tracing")]
46 pub use tracing_impl::*;
48 #[cfg(feature = "profile-with-tracy")]
50 #[cfg(feature = "profile-with-tracy")]
52 #[cfg(feature = "profile-with-tracy")]
53 pub use tracy_impl::*;
55 #[cfg(feature = "type-check")]
57 #[cfg(feature = "type-check")]
58 pub use type_check_impl::*;
61 feature = "profile-with-puffin",
62 feature = "profile-with-optick",
63 feature = "profile-with-superluminal",
64 feature = "profile-with-tracing",
65 feature = "profile-with-tracy",
66 feature = "type-check"
71 feature = "profile-with-puffin",
72 feature = "profile-with-optick",
73 feature = "profile-with-superluminal",
74 feature = "profile-with-tracing",
75 feature = "profile-with-tracy",
76 feature = "type-check"
78 pub use empty_impl::*;