macro_rules! where_am_i {
    () => {{
        fn f() {}

        fn type_name_of<T>(_: T) -> &'static str {
            std::any::type_name::<T>()
        }

        let name = type_name_of(f);

        // `3` is the length of the `::f`.
        &name[..name.len() - 3]
    }};
}
pub(crate) use where_am_i;

macro_rules! on_enter {
    () => {
        tracing::trace!("Entering {}", crate::tracing::where_am_i!());
    };
}
pub(crate) use on_enter;
