blob: 314d628b9c62cc7afed2bf9754e61424c76d81ba [file] [log] [blame]
// WARNING: This file is machine generated by fidlgen.
// fidl_experiment = output_index_json
#pragma once
#include "lib/fidl/cpp/internal/header.h"
namespace test {
namespace enum_ {
//
// Domain objects declarations
//
enum class MyStrictEnum : uint32_t {
FOO = 1u,
BAR = 2u,
};
inline zx_status_t Clone(::test::enum_::MyStrictEnum value,
::test::enum_::MyStrictEnum* result) {
*result = value;
return ZX_OK;
}
class MyFlexibleEnum final {
public:
constexpr MyFlexibleEnum() : value_(0) {}
constexpr explicit MyFlexibleEnum(uint32_t value) : value_(value) {}
constexpr operator uint32_t() const { return value_; }
constexpr bool IsUnknown() const {
switch (value_) {
case 1u:
case 2u:
return false;
}
return true;
}
constexpr static MyFlexibleEnum Unknown() {
return MyFlexibleEnum(0xffffffff);
}
static const MyFlexibleEnum FOO;
static const MyFlexibleEnum BAR;
private:
uint32_t value_;
};
#if !(__cplusplus < 201703)
constexpr const ::test::enum_::MyFlexibleEnum MyFlexibleEnum::FOO = ::test::enum_::MyFlexibleEnum(1u);
constexpr const ::test::enum_::MyFlexibleEnum MyFlexibleEnum::BAR = ::test::enum_::MyFlexibleEnum(2u);
#endif // !(__cplusplus < 201703)
inline zx_status_t Clone(::test::enum_::MyFlexibleEnum value,
::test::enum_::MyFlexibleEnum* result) {
*result = value;
return ZX_OK;
}
class MyFlexibleEnumWithCustomUnknown final {
public:
constexpr MyFlexibleEnumWithCustomUnknown() : value_(0) {}
constexpr explicit MyFlexibleEnumWithCustomUnknown(uint32_t value) : value_(value) {}
constexpr operator uint32_t() const { return value_; }
constexpr bool IsUnknown() const {
switch (value_) {
case 1u:
case 2u:
return false;
}
return true;
}
constexpr static MyFlexibleEnumWithCustomUnknown Unknown() {
return MyFlexibleEnumWithCustomUnknown(0x3);
}
static const MyFlexibleEnumWithCustomUnknown FOO;
static const MyFlexibleEnumWithCustomUnknown BAR;
static const MyFlexibleEnumWithCustomUnknown CUSTOM_UNKNOWN;
private:
uint32_t value_;
};
#if !(__cplusplus < 201703)
constexpr const ::test::enum_::MyFlexibleEnumWithCustomUnknown MyFlexibleEnumWithCustomUnknown::FOO = ::test::enum_::MyFlexibleEnumWithCustomUnknown(1u);
constexpr const ::test::enum_::MyFlexibleEnumWithCustomUnknown MyFlexibleEnumWithCustomUnknown::BAR = ::test::enum_::MyFlexibleEnumWithCustomUnknown(2u);
constexpr const ::test::enum_::MyFlexibleEnumWithCustomUnknown MyFlexibleEnumWithCustomUnknown::CUSTOM_UNKNOWN = ::test::enum_::MyFlexibleEnumWithCustomUnknown(3u);
#endif // !(__cplusplus < 201703)
inline zx_status_t Clone(::test::enum_::MyFlexibleEnumWithCustomUnknown value,
::test::enum_::MyFlexibleEnumWithCustomUnknown* result) {
*result = value;
return ZX_OK;
}
class MyEmptyFlexibleEnum final {
public:
constexpr MyEmptyFlexibleEnum() : value_(0) {}
constexpr explicit MyEmptyFlexibleEnum(uint32_t value) : value_(value) {}
constexpr operator uint32_t() const { return value_; }
constexpr bool IsUnknown() const {
return true;
}
constexpr static MyEmptyFlexibleEnum Unknown() {
return MyEmptyFlexibleEnum(0xffffffff);
}
private:
uint32_t value_;
};
#if !(__cplusplus < 201703)
#endif // !(__cplusplus < 201703)
inline zx_status_t Clone(::test::enum_::MyEmptyFlexibleEnum value,
::test::enum_::MyEmptyFlexibleEnum* result) {
*result = value;
return ZX_OK;
}
} // namespace enum_
} // namespace test
namespace fidl {
template <>
struct CodingTraits<::test::enum_::MyStrictEnum> {
static constexpr size_t inline_size_v2 = sizeof(::test::enum_::MyStrictEnum);
static void Encode(Encoder* encoder, ::test::enum_::MyStrictEnum* value, size_t offset,
cpp17::optional<::fidl::HandleInformation> maybe_handle_info) {
ZX_DEBUG_ASSERT(!maybe_handle_info);
uint32_t underlying = static_cast<uint32_t>(*value);
::fidl::Encode(encoder, &underlying, offset);
}
static void Decode(Decoder* decoder, ::test::enum_::MyStrictEnum* value, size_t offset) {
uint32_t underlying = {};
::fidl::Decode(decoder, &underlying, offset);
*value = static_cast<::test::enum_::MyStrictEnum>(underlying);
}
};
inline zx_status_t Clone(::test::enum_::MyStrictEnum value,
::test::enum_::MyStrictEnum* result) {
return ::test::enum_::Clone(value, result);
}
template <>
struct Equality<::test::enum_::MyStrictEnum> {
bool operator()(const ::test::enum_::MyStrictEnum& _lhs, const ::test::enum_::MyStrictEnum& _rhs) const {
return _lhs == _rhs;
}
};
template <>
struct CodingTraits<::test::enum_::MyFlexibleEnum> {
static constexpr size_t inline_size_v2 = sizeof(::test::enum_::MyFlexibleEnum);
static void Encode(Encoder* encoder, ::test::enum_::MyFlexibleEnum* value, size_t offset,
cpp17::optional<::fidl::HandleInformation> maybe_handle_info) {
ZX_DEBUG_ASSERT(!maybe_handle_info);
uint32_t underlying = static_cast<uint32_t>(*value);
::fidl::Encode(encoder, &underlying, offset);
}
static void Decode(Decoder* decoder, ::test::enum_::MyFlexibleEnum* value, size_t offset) {
uint32_t underlying = {};
::fidl::Decode(decoder, &underlying, offset);
*value = static_cast<::test::enum_::MyFlexibleEnum>(underlying);
}
};
inline zx_status_t Clone(::test::enum_::MyFlexibleEnum value,
::test::enum_::MyFlexibleEnum* result) {
return ::test::enum_::Clone(value, result);
}
template <>
struct Equality<::test::enum_::MyFlexibleEnum> {
bool operator()(const ::test::enum_::MyFlexibleEnum& _lhs, const ::test::enum_::MyFlexibleEnum& _rhs) const {
return _lhs == _rhs;
}
};
template <>
struct CodingTraits<::test::enum_::MyFlexibleEnumWithCustomUnknown> {
static constexpr size_t inline_size_v2 = sizeof(::test::enum_::MyFlexibleEnumWithCustomUnknown);
static void Encode(Encoder* encoder, ::test::enum_::MyFlexibleEnumWithCustomUnknown* value, size_t offset,
cpp17::optional<::fidl::HandleInformation> maybe_handle_info) {
ZX_DEBUG_ASSERT(!maybe_handle_info);
uint32_t underlying = static_cast<uint32_t>(*value);
::fidl::Encode(encoder, &underlying, offset);
}
static void Decode(Decoder* decoder, ::test::enum_::MyFlexibleEnumWithCustomUnknown* value, size_t offset) {
uint32_t underlying = {};
::fidl::Decode(decoder, &underlying, offset);
*value = static_cast<::test::enum_::MyFlexibleEnumWithCustomUnknown>(underlying);
}
};
inline zx_status_t Clone(::test::enum_::MyFlexibleEnumWithCustomUnknown value,
::test::enum_::MyFlexibleEnumWithCustomUnknown* result) {
return ::test::enum_::Clone(value, result);
}
template <>
struct Equality<::test::enum_::MyFlexibleEnumWithCustomUnknown> {
bool operator()(const ::test::enum_::MyFlexibleEnumWithCustomUnknown& _lhs, const ::test::enum_::MyFlexibleEnumWithCustomUnknown& _rhs) const {
return _lhs == _rhs;
}
};
template <>
struct CodingTraits<::test::enum_::MyEmptyFlexibleEnum> {
static constexpr size_t inline_size_v2 = sizeof(::test::enum_::MyEmptyFlexibleEnum);
static void Encode(Encoder* encoder, ::test::enum_::MyEmptyFlexibleEnum* value, size_t offset,
cpp17::optional<::fidl::HandleInformation> maybe_handle_info) {
ZX_DEBUG_ASSERT(!maybe_handle_info);
uint32_t underlying = static_cast<uint32_t>(*value);
::fidl::Encode(encoder, &underlying, offset);
}
static void Decode(Decoder* decoder, ::test::enum_::MyEmptyFlexibleEnum* value, size_t offset) {
uint32_t underlying = {};
::fidl::Decode(decoder, &underlying, offset);
*value = static_cast<::test::enum_::MyEmptyFlexibleEnum>(underlying);
}
};
inline zx_status_t Clone(::test::enum_::MyEmptyFlexibleEnum value,
::test::enum_::MyEmptyFlexibleEnum* result) {
return ::test::enum_::Clone(value, result);
}
template <>
struct Equality<::test::enum_::MyEmptyFlexibleEnum> {
bool operator()(const ::test::enum_::MyEmptyFlexibleEnum& _lhs, const ::test::enum_::MyEmptyFlexibleEnum& _rhs) const {
return _lhs == _rhs;
}
};
//
// Proxies and stubs declarations
//
} // namespace fidl