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

/* This file is auto-generated by run_glean_parser.py.
   It is only for internal use by types in
   toolkit/components/glean/bindings/private */

#include "mozilla/glean/bindings/Event.h"
#include "mozilla/glean/GleanMetrics.h"

namespace mozilla::glean {

template <>
/*static*/ const nsCString impl::EventMetric<NoExtraKeys>::ExtraStringForKey(NoExtraKeys aKey) {
  MOZ_ASSERT_UNREACHABLE("What are you doing here? No extra keys!");
  return ""_ns;
}

template <>
/*static*/ const nsCString impl::EventMetric<test_nested::EventMetricWithExtraKeys>::ExtraStringForKey(test_nested::EventMetricWithExtraKeys aKey) {
  using test_nested::EventMetricWithExtraKeys;
  switch (aKey) {
    case EventMetricWithExtraKeys::AnExtraKey: {
      return "an_extra_key"_ns;
    }
    case EventMetricWithExtraKeys::AnotherExtraKey: {
      return "another_extra_key"_ns;
    }
    default: {
      MOZ_ASSERT_UNREACHABLE("Impossible event key reached.");
      return ""_ns;
    }
  }
}

};  // namespace mozilla::glean
