| // WARNING: This file is machine generated by fidlgen. | 
 |  | 
 | #pragma once | 
 |  | 
 | #include "lib/fidl/cpp/internal/header.h" | 
 |  | 
 | namespace test { | 
 | namespace name { | 
 |  | 
 | enum class MyStrictEnum : uint32_t { | 
 |  | 
 |   FOO = 1u, | 
 |  | 
 |   BAR = 2u, | 
 | }; | 
 |  | 
 | inline zx_status_t Clone(::test::name::MyStrictEnum value, | 
 |                          ::test::name::MyStrictEnum* result) { | 
 |   *result = value; | 
 |   return ZX_OK; | 
 | } | 
 |  | 
 | enum class MyFlexibleEnumWithCustomUnknown : uint32_t { | 
 |  | 
 |   FOO = 1u, | 
 |  | 
 |   BAR = 2u, | 
 |  | 
 |   CUSTOM_UNKNOWN = 3u, | 
 | }; | 
 |  | 
 | inline zx_status_t Clone( | 
 |     ::test::name::MyFlexibleEnumWithCustomUnknown value, | 
 |     ::test::name::MyFlexibleEnumWithCustomUnknown* result) { | 
 |   *result = value; | 
 |   return ZX_OK; | 
 | } | 
 |  | 
 | enum class MyFlexibleEnum : uint32_t { | 
 |  | 
 |   FOO = 1u, | 
 |  | 
 |   BAR = 2u, | 
 | }; | 
 |  | 
 | inline zx_status_t Clone(::test::name::MyFlexibleEnum value, | 
 |                          ::test::name::MyFlexibleEnum* result) { | 
 |   *result = value; | 
 |   return ZX_OK; | 
 | } | 
 |  | 
 | }  // namespace name | 
 | }  // namespace test | 
 | namespace fidl { | 
 |  | 
 | template <> | 
 | struct CodingTraits<::test::name::MyStrictEnum> { | 
 |   static constexpr size_t inline_size_old = sizeof(::test::name::MyStrictEnum); | 
 |   static constexpr size_t inline_size_v1_no_ee = | 
 |       sizeof(::test::name::MyStrictEnum); | 
 |   static void Encode(Encoder* encoder, ::test::name::MyStrictEnum* value, | 
 |                      size_t offset) { | 
 |     uint32_t underlying = static_cast<uint32_t>(*value); | 
 |     ::fidl::Encode(encoder, &underlying, offset); | 
 |   } | 
 |   static void Decode(Decoder* decoder, ::test::name::MyStrictEnum* value, | 
 |                      size_t offset) { | 
 |     uint32_t underlying = {}; | 
 |     ::fidl::Decode(decoder, &underlying, offset); | 
 |     *value = static_cast<::test::name::MyStrictEnum>(underlying); | 
 |   } | 
 | }; | 
 |  | 
 | inline zx_status_t Clone(::test::name::MyStrictEnum value, | 
 |                          ::test::name::MyStrictEnum* result) { | 
 |   return ::test::name::Clone(value, result); | 
 | } | 
 | template <> | 
 | struct Equality<::test::name::MyStrictEnum> { | 
 |   bool operator()(const ::test::name::MyStrictEnum& _lhs, | 
 |                   const ::test::name::MyStrictEnum& _rhs) const { | 
 |     return _lhs == _rhs; | 
 |   } | 
 | }; | 
 |  | 
 | template <> | 
 | struct CodingTraits<::test::name::MyFlexibleEnumWithCustomUnknown> { | 
 |   static constexpr size_t inline_size_old = | 
 |       sizeof(::test::name::MyFlexibleEnumWithCustomUnknown); | 
 |   static constexpr size_t inline_size_v1_no_ee = | 
 |       sizeof(::test::name::MyFlexibleEnumWithCustomUnknown); | 
 |   static void Encode(Encoder* encoder, | 
 |                      ::test::name::MyFlexibleEnumWithCustomUnknown* value, | 
 |                      size_t offset) { | 
 |     uint32_t underlying = static_cast<uint32_t>(*value); | 
 |     ::fidl::Encode(encoder, &underlying, offset); | 
 |   } | 
 |   static void Decode(Decoder* decoder, | 
 |                      ::test::name::MyFlexibleEnumWithCustomUnknown* value, | 
 |                      size_t offset) { | 
 |     uint32_t underlying = {}; | 
 |     ::fidl::Decode(decoder, &underlying, offset); | 
 |     *value = | 
 |         static_cast<::test::name::MyFlexibleEnumWithCustomUnknown>(underlying); | 
 |   } | 
 | }; | 
 |  | 
 | inline zx_status_t Clone( | 
 |     ::test::name::MyFlexibleEnumWithCustomUnknown value, | 
 |     ::test::name::MyFlexibleEnumWithCustomUnknown* result) { | 
 |   return ::test::name::Clone(value, result); | 
 | } | 
 | template <> | 
 | struct Equality<::test::name::MyFlexibleEnumWithCustomUnknown> { | 
 |   bool operator()( | 
 |       const ::test::name::MyFlexibleEnumWithCustomUnknown& _lhs, | 
 |       const ::test::name::MyFlexibleEnumWithCustomUnknown& _rhs) const { | 
 |     return _lhs == _rhs; | 
 |   } | 
 | }; | 
 |  | 
 | template <> | 
 | struct CodingTraits<::test::name::MyFlexibleEnum> { | 
 |   static constexpr size_t inline_size_old = | 
 |       sizeof(::test::name::MyFlexibleEnum); | 
 |   static constexpr size_t inline_size_v1_no_ee = | 
 |       sizeof(::test::name::MyFlexibleEnum); | 
 |   static void Encode(Encoder* encoder, ::test::name::MyFlexibleEnum* value, | 
 |                      size_t offset) { | 
 |     uint32_t underlying = static_cast<uint32_t>(*value); | 
 |     ::fidl::Encode(encoder, &underlying, offset); | 
 |   } | 
 |   static void Decode(Decoder* decoder, ::test::name::MyFlexibleEnum* value, | 
 |                      size_t offset) { | 
 |     uint32_t underlying = {}; | 
 |     ::fidl::Decode(decoder, &underlying, offset); | 
 |     *value = static_cast<::test::name::MyFlexibleEnum>(underlying); | 
 |   } | 
 | }; | 
 |  | 
 | inline zx_status_t Clone(::test::name::MyFlexibleEnum value, | 
 |                          ::test::name::MyFlexibleEnum* result) { | 
 |   return ::test::name::Clone(value, result); | 
 | } | 
 | template <> | 
 | struct Equality<::test::name::MyFlexibleEnum> { | 
 |   bool operator()(const ::test::name::MyFlexibleEnum& _lhs, | 
 |                   const ::test::name::MyFlexibleEnum& _rhs) const { | 
 |     return _lhs == _rhs; | 
 |   } | 
 | }; | 
 |  | 
 | }  // namespace fidl |