| // WARNING: This file is machine generated by fidlgen. |
| |
| #pragma once |
| |
| #include <lib/fidl/internal.h> |
| #include <lib/fidl/llcpp/array.h> |
| #include <lib/fidl/llcpp/coding.h> |
| #include <lib/fidl/llcpp/envelope.h> |
| #include <lib/fidl/llcpp/errors.h> |
| #include <lib/fidl/llcpp/message.h> |
| #include <lib/fidl/llcpp/message_storage.h> |
| #include <lib/fidl/llcpp/object_view.h> |
| #include <lib/fidl/llcpp/string_view.h> |
| #include <lib/fidl/llcpp/traits.h> |
| #include <lib/fidl/llcpp/vector_view.h> |
| #include <lib/fit/function.h> |
| #include <lib/stdcompat/optional.h> |
| |
| #include <algorithm> |
| #include <cstddef> |
| #include <variant> |
| #ifdef __Fuchsia__ |
| #include <lib/fidl/llcpp/client.h> |
| #include <lib/fidl/llcpp/client_end.h> |
| #include <lib/fidl/llcpp/connect_service.h> |
| #include <lib/fidl/llcpp/result.h> |
| #include <lib/fidl/llcpp/server.h> |
| #include <lib/fidl/llcpp/server_end.h> |
| #include <lib/fidl/llcpp/service_handler_interface.h> |
| #include <lib/fidl/llcpp/sync_call.h> |
| #include <lib/fidl/llcpp/transaction.h> |
| #include <lib/fidl/llcpp/wire_messaging.h> |
| #include <lib/fidl/txn_header.h> |
| |
| #endif // __Fuchsia__ |
| #include <zircon/fidl.h> |
| |
| namespace fidl_test_enum { |
| namespace wire { |
| |
| enum class MyStrictEnum : uint32_t { |
| |
| FOO = 1u, |
| |
| BAR = 2u, |
| }; |
| |
| class MyFlexibleEnumWithCustomUnknown final { |
| public: |
| constexpr MyFlexibleEnumWithCustomUnknown() : value_(0) {} |
| constexpr explicit MyFlexibleEnumWithCustomUnknown(uint32_t value) |
| : value_(value) {} |
| constexpr MyFlexibleEnumWithCustomUnknown( |
| const MyFlexibleEnumWithCustomUnknown& other) = default; |
| constexpr operator uint32_t() const { return value_; } |
| |
| constexpr bool IsUnknown() const { |
| switch (value_) { |
| case 1u: |
| |
| case 2u: |
| |
| return false; |
| default: |
| 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_; |
| }; |
| constexpr const ::fidl_test_enum::wire::MyFlexibleEnumWithCustomUnknown |
| MyFlexibleEnumWithCustomUnknown::FOO = |
| ::fidl_test_enum::wire::MyFlexibleEnumWithCustomUnknown(1u); |
| constexpr const ::fidl_test_enum::wire::MyFlexibleEnumWithCustomUnknown |
| MyFlexibleEnumWithCustomUnknown::BAR = |
| ::fidl_test_enum::wire::MyFlexibleEnumWithCustomUnknown(2u); |
| constexpr const ::fidl_test_enum::wire::MyFlexibleEnumWithCustomUnknown |
| MyFlexibleEnumWithCustomUnknown::CUSTOM_UNKNOWN = |
| ::fidl_test_enum::wire::MyFlexibleEnumWithCustomUnknown(3u); |
| |
| class MyFlexibleEnum final { |
| public: |
| constexpr MyFlexibleEnum() : value_(0) {} |
| constexpr explicit MyFlexibleEnum(uint32_t value) : value_(value) {} |
| constexpr MyFlexibleEnum(const MyFlexibleEnum& other) = default; |
| constexpr operator uint32_t() const { return value_; } |
| |
| constexpr bool IsUnknown() const { |
| switch (value_) { |
| case 1u: |
| |
| case 2u: |
| |
| return false; |
| default: |
| return true; |
| } |
| } |
| |
| constexpr static MyFlexibleEnum Unknown() { |
| return MyFlexibleEnum(0xffffffff); |
| } |
| |
| static const MyFlexibleEnum FOO; |
| |
| static const MyFlexibleEnum BAR; |
| |
| private: |
| uint32_t value_; |
| }; |
| constexpr const ::fidl_test_enum::wire::MyFlexibleEnum MyFlexibleEnum::FOO = |
| ::fidl_test_enum::wire::MyFlexibleEnum(1u); |
| constexpr const ::fidl_test_enum::wire::MyFlexibleEnum MyFlexibleEnum::BAR = |
| ::fidl_test_enum::wire::MyFlexibleEnum(2u); |
| |
| } // namespace wire |
| } // namespace fidl_test_enum |
| namespace fidl { |
| |
| template <> |
| struct IsFidlType<::fidl_test_enum::wire::MyStrictEnum> |
| : public std::true_type {}; |
| |
| template <> |
| struct IsFidlType<::fidl_test_enum::wire::MyFlexibleEnumWithCustomUnknown> |
| : public std::true_type {}; |
| |
| template <> |
| struct IsFidlType<::fidl_test_enum::wire::MyFlexibleEnum> |
| : public std::true_type {}; |
| |
| } // namespace fidl |