blob: fb13bb1815dfb98f8aa598fd970a9ba3501c4841 [file] [log] [blame]
/**
* Generated by the Emboss compiler. DO NOT EDIT!
*/
#ifndef TESTDATA_ABSOLUTE_CPP_NAMESPACE_EMB_H_
#define TESTDATA_ABSOLUTE_CPP_NAMESPACE_EMB_H_
#include <stdint.h>
#include <string.h>
#include <algorithm>
#include <type_traits>
#include <utility>
#include "runtime/cpp/emboss_cpp_util.h"
#include "runtime/cpp/emboss_prelude.h"
#include "runtime/cpp/emboss_enum_view.h"
#include "runtime/cpp/emboss_text_util.h"
/* NOLINTBEGIN */
namespace emboss {
namespace test {
namespace leading_double_colon {
enum class Foo : ::std::uint64_t;
enum class Foo : ::std::uint64_t {
VALUE = static_cast</**/::std::int32_t>(12LL),
};
template <class Enum>
class EnumTraits;
template <>
class EnumTraits<Foo> final {
public:
static bool TryToGetEnumFromName(const char *emboss_reserved_local_name,
Foo *emboss_reserved_local_result) {
if (emboss_reserved_local_name == nullptr) return false;
if (!strcmp("VALUE", emboss_reserved_local_name)) {
*emboss_reserved_local_result = Foo::VALUE;
return true;
}
return false;
}
static const char *TryToGetNameFromEnum(
Foo emboss_reserved_local_value) {
switch (emboss_reserved_local_value) {
case Foo::VALUE: return "VALUE";
default: return nullptr;
}
}
static bool EnumIsKnown(Foo emboss_reserved_local_value) {
switch (emboss_reserved_local_value) {
case Foo::VALUE: return true;
default:
return false;
}
}
static ::std::ostream &SendToOstream(::std::ostream &emboss_reserved_local_os,
Foo emboss_reserved_local_value) {
const char *emboss_reserved_local_name =
TryToGetNameFromEnum(emboss_reserved_local_value);
if (emboss_reserved_local_name == nullptr) {
emboss_reserved_local_os
<< static_cast</**/ ::std::underlying_type<Foo>::type>(
emboss_reserved_local_value);
} else {
emboss_reserved_local_os << emboss_reserved_local_name;
}
return emboss_reserved_local_os;
}
};
static inline bool TryToGetEnumFromName(
const char *emboss_reserved_local_name,
Foo *emboss_reserved_local_result) {
return EnumTraits<Foo>::TryToGetEnumFromName(
emboss_reserved_local_name, emboss_reserved_local_result);
}
static inline const char *TryToGetNameFromEnum(
Foo emboss_reserved_local_value) {
return EnumTraits<Foo>::TryToGetNameFromEnum(
emboss_reserved_local_value);
}
static inline bool EnumIsKnown(Foo emboss_reserved_local_value) {
return EnumTraits<Foo>::EnumIsKnown(emboss_reserved_local_value);
}
static inline ::std::ostream &operator<<(
::std::ostream &emboss_reserved_local_os,
Foo emboss_reserved_local_value) {
return EnumTraits<Foo>::SendToOstream(emboss_reserved_local_os,
emboss_reserved_local_value);
}
} // namespace leading_double_colon
} // namespace test
} // namespace emboss
/* NOLINTEND */
#endif // TESTDATA_ABSOLUTE_CPP_NAMESPACE_EMB_H_