| // WARNING: This file is machine generated by fidlgen. |
| |
| #pragma once |
| |
| #include <lib/fidl/llcpp/internal/display_error.h> |
| #include <lib/fidl/llcpp/traits.h> |
| #include <lib/stdcompat/optional.h> |
| |
| #include <cinttypes> |
| |
| namespace test_anonymous { |
| // |Flags| is flexible, hence may contain unknown members not |
| // defined in the FIDL schema. |
| class Flags final { |
| public: |
| constexpr Flags() = default; |
| |
| // Constructs an instance of |Flags| from an underlying primitive value, |
| // preserving any bit member not defined in the FIDL schema. |
| explicit constexpr Flags(uint16_t value) : value_(value) {} |
| const static Flags kInline; |
| const static Flags kMask; |
| |
| explicit constexpr inline operator uint16_t() const { return value_; } |
| explicit constexpr inline operator bool() const { |
| return static_cast<bool>(value_); |
| } |
| constexpr inline bool operator==(const Flags& other) const { |
| return value_ == other.value_; |
| } |
| constexpr inline bool operator!=(const Flags& other) const { |
| return value_ != other.value_; |
| } |
| constexpr inline Flags operator~() const; |
| constexpr inline Flags operator|(const Flags& other) const; |
| constexpr inline Flags operator&(const Flags& other) const; |
| constexpr inline Flags operator^(const Flags& other) const; |
| constexpr inline void operator|=(const Flags& other); |
| constexpr inline void operator&=(const Flags& other); |
| constexpr inline void operator^=(const Flags& other); |
| |
| // Constructs an instance of |Flags| from an underlying primitive value |
| // if the primitive does not contain any unknown members not defined in the |
| // FIDL schema. Otherwise, returns |std::nullopt|. |
| constexpr inline static std::optional<Flags> TryFrom(uint16_t value) { |
| if (value & ~kMask.value_) { |
| return std::nullopt; |
| } |
| return Flags(value & Flags::kMask.value_); |
| } |
| |
| // Constructs an instance of |Flags| from an underlying primitive value, |
| // clearing any bit member not defined in the FIDL schema. |
| constexpr inline static Flags TruncatingUnknown(uint16_t value) { |
| return Flags(value & Flags::kMask.value_); |
| } |
| constexpr inline Flags unknown_bits() const { |
| return *this & Flags(~kMask.value_); |
| } |
| constexpr inline bool has_unknown_bits() const { |
| return static_cast<bool>(unknown_bits()); |
| } |
| |
| private: |
| uint16_t value_ = 0; |
| }; |
| constexpr const ::test_anonymous::Flags Flags::kInline = |
| ::test_anonymous::Flags(1u); |
| constexpr const ::test_anonymous::Flags Flags::kMask = |
| ::test_anonymous::Flags(1u); |
| |
| constexpr inline ::test_anonymous::Flags Flags::operator~() const { |
| return ::test_anonymous::Flags( |
| static_cast<uint16_t>(~this->value_ & kMask.value_)); |
| } |
| |
| constexpr inline ::test_anonymous::Flags Flags::operator|( |
| const ::test_anonymous::Flags& other) const { |
| return ::test_anonymous::Flags( |
| static_cast<uint16_t>(this->value_ | other.value_)); |
| } |
| |
| constexpr inline ::test_anonymous::Flags Flags::operator&( |
| const ::test_anonymous::Flags& other) const { |
| return ::test_anonymous::Flags( |
| static_cast<uint16_t>(this->value_ & other.value_)); |
| } |
| |
| constexpr inline ::test_anonymous::Flags Flags::operator^( |
| const ::test_anonymous::Flags& other) const { |
| return ::test_anonymous::Flags( |
| static_cast<uint16_t>(this->value_ ^ other.value_)); |
| } |
| |
| constexpr inline void Flags::operator|=(const ::test_anonymous::Flags& other) { |
| this->value_ |= other.value_; |
| } |
| |
| constexpr inline void Flags::operator&=(const ::test_anonymous::Flags& other) { |
| this->value_ &= other.value_; |
| } |
| |
| constexpr inline void Flags::operator^=(const ::test_anonymous::Flags& other) { |
| this->value_ ^= other.value_; |
| } |
| |
| // |BitsMember| is flexible, hence may contain unknown members not |
| // defined in the FIDL schema. |
| class BitsMember final { |
| public: |
| constexpr BitsMember() = default; |
| |
| // Constructs an instance of |BitsMember| from an underlying primitive value, |
| // preserving any bit member not defined in the FIDL schema. |
| explicit constexpr BitsMember(uint32_t value) : value_(value) {} |
| const static BitsMember kBitOne; |
| const static BitsMember kBitTwo; |
| const static BitsMember kMask; |
| |
| explicit constexpr inline operator uint32_t() const { return value_; } |
| explicit constexpr inline operator bool() const { |
| return static_cast<bool>(value_); |
| } |
| constexpr inline bool operator==(const BitsMember& other) const { |
| return value_ == other.value_; |
| } |
| constexpr inline bool operator!=(const BitsMember& other) const { |
| return value_ != other.value_; |
| } |
| constexpr inline BitsMember operator~() const; |
| constexpr inline BitsMember operator|(const BitsMember& other) const; |
| constexpr inline BitsMember operator&(const BitsMember& other) const; |
| constexpr inline BitsMember operator^(const BitsMember& other) const; |
| constexpr inline void operator|=(const BitsMember& other); |
| constexpr inline void operator&=(const BitsMember& other); |
| constexpr inline void operator^=(const BitsMember& other); |
| |
| // Constructs an instance of |BitsMember| from an underlying primitive value |
| // if the primitive does not contain any unknown members not defined in the |
| // FIDL schema. Otherwise, returns |std::nullopt|. |
| constexpr inline static std::optional<BitsMember> TryFrom(uint32_t value) { |
| if (value & ~kMask.value_) { |
| return std::nullopt; |
| } |
| return BitsMember(value & BitsMember::kMask.value_); |
| } |
| |
| // Constructs an instance of |BitsMember| from an underlying primitive value, |
| // clearing any bit member not defined in the FIDL schema. |
| constexpr inline static BitsMember TruncatingUnknown(uint32_t value) { |
| return BitsMember(value & BitsMember::kMask.value_); |
| } |
| constexpr inline BitsMember unknown_bits() const { |
| return *this & BitsMember(~kMask.value_); |
| } |
| constexpr inline bool has_unknown_bits() const { |
| return static_cast<bool>(unknown_bits()); |
| } |
| |
| private: |
| uint32_t value_ = 0; |
| }; |
| constexpr const ::test_anonymous::BitsMember BitsMember::kBitOne = |
| ::test_anonymous::BitsMember(1u); |
| constexpr const ::test_anonymous::BitsMember BitsMember::kBitTwo = |
| ::test_anonymous::BitsMember(2u); |
| constexpr const ::test_anonymous::BitsMember BitsMember::kMask = |
| ::test_anonymous::BitsMember(3u); |
| |
| constexpr inline ::test_anonymous::BitsMember BitsMember::operator~() const { |
| return ::test_anonymous::BitsMember( |
| static_cast<uint32_t>(~this->value_ & kMask.value_)); |
| } |
| |
| constexpr inline ::test_anonymous::BitsMember BitsMember::operator|( |
| const ::test_anonymous::BitsMember& other) const { |
| return ::test_anonymous::BitsMember( |
| static_cast<uint32_t>(this->value_ | other.value_)); |
| } |
| |
| constexpr inline ::test_anonymous::BitsMember BitsMember::operator&( |
| const ::test_anonymous::BitsMember& other) const { |
| return ::test_anonymous::BitsMember( |
| static_cast<uint32_t>(this->value_ & other.value_)); |
| } |
| |
| constexpr inline ::test_anonymous::BitsMember BitsMember::operator^( |
| const ::test_anonymous::BitsMember& other) const { |
| return ::test_anonymous::BitsMember( |
| static_cast<uint32_t>(this->value_ ^ other.value_)); |
| } |
| |
| constexpr inline void BitsMember::operator|=( |
| const ::test_anonymous::BitsMember& other) { |
| this->value_ |= other.value_; |
| } |
| |
| constexpr inline void BitsMember::operator&=( |
| const ::test_anonymous::BitsMember& other) { |
| this->value_ &= other.value_; |
| } |
| |
| constexpr inline void BitsMember::operator^=( |
| const ::test_anonymous::BitsMember& other) { |
| this->value_ ^= other.value_; |
| } |
| |
| class SomeProtocolSomeMethodError final { |
| public: |
| constexpr SomeProtocolSomeMethodError() : value_(0) {} |
| constexpr explicit SomeProtocolSomeMethodError(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 SomeProtocolSomeMethodError Unknown() { |
| return SomeProtocolSomeMethodError(0xffffffff); |
| } |
| |
| static const SomeProtocolSomeMethodError kErrorOne; |
| |
| static const SomeProtocolSomeMethodError kErrorTwo; |
| |
| private: |
| uint32_t value_; |
| }; |
| constexpr const ::test_anonymous::SomeProtocolSomeMethodError |
| SomeProtocolSomeMethodError::kErrorOne = |
| ::test_anonymous::SomeProtocolSomeMethodError(1u); |
| constexpr const ::test_anonymous::SomeProtocolSomeMethodError |
| SomeProtocolSomeMethodError::kErrorTwo = |
| ::test_anonymous::SomeProtocolSomeMethodError(2u); |
| |
| } // namespace test_anonymous |
| template <> |
| struct fidl::internal::DisplayError< |
| ::test_anonymous::SomeProtocolSomeMethodError> { |
| static size_t Format( |
| const ::test_anonymous::SomeProtocolSomeMethodError& value, |
| char* destination, size_t capacity); |
| }; |
| |
| namespace test_anonymous { |
| |
| class Op final { |
| public: |
| constexpr Op() : value_(0) {} |
| constexpr explicit Op(uint32_t value) : value_(value) {} |
| constexpr operator uint32_t() const { return value_; } |
| |
| constexpr bool IsUnknown() const { |
| switch (value_) { |
| case 1u: |
| |
| case 2u: |
| |
| case 3u: |
| |
| return false; |
| } |
| return true; |
| } |
| |
| constexpr static Op Unknown() { return Op(0xffffffff); } |
| |
| static const Op kAdd; |
| |
| static const Op kMul; |
| |
| static const Op kDiv; |
| |
| private: |
| uint32_t value_; |
| }; |
| constexpr const ::test_anonymous::Op Op::kAdd = ::test_anonymous::Op(1u); |
| constexpr const ::test_anonymous::Op Op::kMul = ::test_anonymous::Op(2u); |
| constexpr const ::test_anonymous::Op Op::kDiv = ::test_anonymous::Op(3u); |
| |
| } // namespace test_anonymous |
| template <> |
| struct fidl::internal::DisplayError<::test_anonymous::Op> { |
| static size_t Format(const ::test_anonymous::Op& value, char* destination, |
| size_t capacity); |
| }; |
| |
| namespace fidl { |
| |
| template <> |
| struct IsFidlType<::test_anonymous::Flags> : public std::true_type {}; |
| template <> |
| struct ContainsHandle<::test_anonymous::Flags> : public std::false_type {}; |
| static_assert(std::is_standard_layout_v<::test_anonymous::Flags>); |
| static_assert(sizeof(::test_anonymous::Flags) == sizeof(uint16_t)); |
| |
| template <> |
| struct IsFidlType<::test_anonymous::BitsMember> : public std::true_type {}; |
| template <> |
| struct ContainsHandle<::test_anonymous::BitsMember> : public std::false_type {}; |
| static_assert(std::is_standard_layout_v<::test_anonymous::BitsMember>); |
| static_assert(sizeof(::test_anonymous::BitsMember) == sizeof(uint32_t)); |
| |
| template <> |
| struct IsFidlType<::test_anonymous::SomeProtocolSomeMethodError> |
| : public std::true_type {}; |
| template <> |
| struct ContainsHandle<::test_anonymous::SomeProtocolSomeMethodError> |
| : public std::false_type {}; |
| |
| template <> |
| struct IsFidlType<::test_anonymous::Op> : public std::true_type {}; |
| template <> |
| struct ContainsHandle<::test_anonymous::Op> : public std::false_type {}; |
| |
| } // namespace fidl |