blob: a2d312405cc1a02412a5bba86d8fce5efa24f957 [file] [log] [blame]
// WARNING: This file is machine generated by fidlgen.
// fidl_experiment = output_index_json
#pragma once
#include <lib/fidl/cpp/wire/array.h>
#include <lib/fidl/cpp/wire/envelope.h>
#include <lib/fidl/cpp/wire/internal/framework_err.h>
#include <lib/fidl/cpp/wire/message.h>
#include <lib/fidl/cpp/wire/message_storage.h>
#include <lib/fidl/cpp/wire/object_view.h>
#include <lib/fidl/cpp/wire/string_view.h>
#include <lib/fidl/cpp/wire/traits.h>
#include <lib/fidl/cpp/wire/wire_types.h>
#include <lib/stdcompat/optional.h>
#include <cinttypes>
#ifdef __Fuchsia__
#endif // __Fuchsia__
#include <fidl/test.enum/cpp/common_types.h>
#include <fidl/test.enum/cpp/markers.h>
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wshadow"
namespace test_enum {
namespace wire {
using MyStrictEnum = ::test_enum::MyStrictEnum;
using MyFlexibleEnum = ::test_enum::MyFlexibleEnum;
using MyFlexibleEnumWithCustomUnknown = ::test_enum::MyFlexibleEnumWithCustomUnknown;
using MyEmptyFlexibleEnum = ::test_enum::MyEmptyFlexibleEnum;
} // namespace wire
} // namespace test_enum
namespace fidl {
template <bool IsRecursive>
struct internal::WireCodingTraits<::test_enum::wire::MyStrictEnum, ::fidl::internal::WireCodingConstraintEmpty, IsRecursive> {
static constexpr size_t kInlineSize = sizeof(uint32_t);
static constexpr bool kIsMemcpyCompatible = false;
static void Encode(internal::WireEncoder* encoder, ::test_enum::wire::MyStrictEnum* value, ::fidl::internal::WirePosition position, RecursionDepth<IsRecursive> recursion_depth) {
switch (*value) {
case ::test_enum::wire::MyStrictEnum::kFoo:
case ::test_enum::wire::MyStrictEnum::kBar:
break;
default:
encoder->SetError(::fidl::internal::kCodingErrorUnknownEnumValue);
return;
}
*position.As<::test_enum::wire::MyStrictEnum>() = *value;
}
static void Decode(internal::WireDecoder* decoder, ::fidl::internal::WirePosition position, RecursionDepth<IsRecursive> recursion_depth) {
[[maybe_unused]] ::test_enum::wire::MyStrictEnum value = *position.As<::test_enum::wire::MyStrictEnum>();
switch (value) {
case ::test_enum::wire::MyStrictEnum::kFoo:
case ::test_enum::wire::MyStrictEnum::kBar:
break;
default:
decoder->SetError(::fidl::internal::kCodingErrorUnknownEnumValue);
return;
}
}
};
template <bool IsRecursive>
struct internal::WireCodingTraits<::test_enum::wire::MyFlexibleEnum, ::fidl::internal::WireCodingConstraintEmpty, IsRecursive> {
static constexpr size_t kInlineSize = sizeof(uint32_t);
static constexpr bool kIsMemcpyCompatible = true;
static void Encode(internal::WireEncoder* encoder, ::test_enum::wire::MyFlexibleEnum* value, ::fidl::internal::WirePosition position, RecursionDepth<IsRecursive> recursion_depth) {
*position.As<::test_enum::wire::MyFlexibleEnum>() = *value;
}
static void Decode(internal::WireDecoder* decoder, ::fidl::internal::WirePosition position, RecursionDepth<IsRecursive> recursion_depth) {
}
};
template <bool IsRecursive>
struct internal::WireCodingTraits<::test_enum::wire::MyFlexibleEnumWithCustomUnknown, ::fidl::internal::WireCodingConstraintEmpty, IsRecursive> {
static constexpr size_t kInlineSize = sizeof(uint32_t);
static constexpr bool kIsMemcpyCompatible = true;
static void Encode(internal::WireEncoder* encoder, ::test_enum::wire::MyFlexibleEnumWithCustomUnknown* value, ::fidl::internal::WirePosition position, RecursionDepth<IsRecursive> recursion_depth) {
*position.As<::test_enum::wire::MyFlexibleEnumWithCustomUnknown>() = *value;
}
static void Decode(internal::WireDecoder* decoder, ::fidl::internal::WirePosition position, RecursionDepth<IsRecursive> recursion_depth) {
}
};
template <bool IsRecursive>
struct internal::WireCodingTraits<::test_enum::wire::MyEmptyFlexibleEnum, ::fidl::internal::WireCodingConstraintEmpty, IsRecursive> {
static constexpr size_t kInlineSize = sizeof(uint32_t);
static constexpr bool kIsMemcpyCompatible = true;
static void Encode(internal::WireEncoder* encoder, ::test_enum::wire::MyEmptyFlexibleEnum* value, ::fidl::internal::WirePosition position, RecursionDepth<IsRecursive> recursion_depth) {
*position.As<::test_enum::wire::MyEmptyFlexibleEnum>() = *value;
}
static void Decode(internal::WireDecoder* decoder, ::fidl::internal::WirePosition position, RecursionDepth<IsRecursive> recursion_depth) {
}
};
#pragma clang diagnostic pop
} // namespace fidl