Source code

Revision control

Copy as Markdown

Other Tools

// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at https://mozilla.org/MPL/2.0/.
//! This file contains the generated ProfilingCategory and ProfilingCategoryPair enums.
//!
//! The contents of this module are generated by
//! `mozglue/baseprofiler/generate_profiling_categories.py`, from
//! 'mozglue/baseprofiler/core/profiling_categories.yaml`.
include!(mozbuild::objdir_path!(
"tools/profiler/rust-api/src/gecko_bindings/profiling_categories.rs"
));
/// Helper macro that returns the profiling category pair from either only
/// "category", or "category + sub category" pair. Refer to `profiling_categories.yaml`
/// or generated `profiling_categories.rs` to see all the marker categories.
/// This is useful to make the APIs similar to each other since
/// `gecko_profiler_label!` API also requires the same syntax.
///
/// Example usages:
/// - `gecko_profiler_category!(DOM)`
/// - `gecko_profiler_category!(JavaScript, Parsing)`
#[macro_export]
macro_rules! gecko_profiler_category {
($category:ident) => {
$crate::ProfilingCategoryPair::$category(None)
};
($category:ident, $subcategory:ident) => {
$crate::ProfilingCategoryPair::$category(Some($crate::$category::$subcategory))
};
}