// -*- mode: C++ -*-

// AUTOGENERATED BY glean_parser.  DO NOT EDIT.

/* 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 http://mozilla.org/MPL/2.0/. */

#ifndef mozilla_Metrics_h
#define mozilla_Metrics_h

#include "mozilla/glean/bindings/MetricTypes.h"

namespace mozilla::glean {

enum class NoExtraKeys {};


namespace test {
    /**
     * generated from test.boolean_metric
     */
    /**
     * A multi-line
     * description
     */
    constexpr impl::BooleanMetric boolean_metric(1);

    /**
     * generated from test.labeled_boolean_metric
     */
    /**
     * A multi-line
     * description
     */
    constexpr impl::Labeled<impl::BooleanMetric> labeled_boolean_metric(2);

    /**
     * generated from test.labeled_boolean_metric_labels
     */
    /**
     * A multi-line
     * description
     */
    constexpr impl::Labeled<impl::BooleanMetric> labeled_boolean_metric_labels(3);

    /**
     * generated from test.counter_metric
     */
    /**
     * A multi-line
     * description
     */
    constexpr impl::CounterMetric counter_metric(4);

    /**
     * generated from test.labeled_counter_metric
     */
    /**
     * A multi-line
     * description
     */
    constexpr impl::Labeled<impl::CounterMetric> labeled_counter_metric(5);

    /**
     * generated from test.labeled_counter_metric_labels
     */
    /**
     * A multi-line
     * description
     */
    constexpr impl::Labeled<impl::CounterMetric> labeled_counter_metric_labels(6);

    /**
     * generated from test.string_metric
     */
    /**
     * A multi-line
     * description
     */
    constexpr impl::StringMetric string_metric(7);

    /**
     * generated from test.labeled_string_metric
     */
    /**
     * A multi-line
     * description
     */
    constexpr impl::Labeled<impl::StringMetric> labeled_string_metric(8);

    /**
     * generated from test.labeled_string_metric_labels
     */
    /**
     * A multi-line
     * description
     */
    constexpr impl::Labeled<impl::StringMetric> labeled_string_metric_labels(9);

    /**
     * generated from test.string_list_metric
     */
    /**
     * A multi-line
     * description
     */
    constexpr impl::StringListMetric string_list_metric(10);

    /**
     * generated from test.timespan_metric
     */
    /**
     * A multi-line
     * description
     */
    constexpr impl::TimespanMetric timespan_metric(11);

    /**
     * generated from test.timing_distribution_metric
     */
    /**
     * A multi-line
     * description
     */
    constexpr impl::TimingDistributionMetric timing_distribution_metric(12);

    /**
     * generated from test.memory_distribution_metric
     */
    /**
     * A multi-line
     * description
     */
    constexpr impl::MemoryDistributionMetric memory_distribution_metric(13);

}
namespace test_nested {
    /**
     * generated from test.nested.uuid_metric
     */
    /**
     * A multi-line
     * description
     */
    constexpr impl::UuidMetric uuid_metric(14);

    /**
     * generated from test.nested.datetime_metric
     */
    /**
     * A multi-line
     * description
     */
    constexpr impl::DatetimeMetric datetime_metric(15);

    /**
     * generated from test.nested.event_metric
     */
    /**
     * A multi-line
     * description
     */
    constexpr impl::EventMetric<NoExtraKeys> event_metric(16);

    /**
     * generated from test.nested.event_metric_with_extra
     */
    enum class EventMetricWithExtraKeys : int32_t {
        AnExtraKey,
        AnotherExtraKey,
    };

    /**
     * A multi-line
     * description
     */
    constexpr impl::EventMetric<EventMetricWithExtraKeys> event_metric_with_extra(17);

    /**
     * generated from test.nested.quantity_metric
     */
    /**
     * A multi-line
     * description
     */
    constexpr impl::QuantityMetric quantity_metric(18);

}

} // namespace mozilla::glean

#endif // mozilla_Metrics_h
