blob: 99af4a2a69e4c0accb3884b7e36e8c26cccfddc9 [file] [log] [blame]
// 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/buffer_allocator.h>
#include <lib/fidl/llcpp/coding.h>
#include <lib/fidl/llcpp/connect_service.h>
#include <lib/fidl/llcpp/envelope.h>
#include <lib/fidl/llcpp/memory.h>
#include <lib/fidl/llcpp/service_handler_interface.h>
#include <lib/fidl/llcpp/string_view.h>
#include <lib/fidl/llcpp/sync_call.h>
#include <lib/fidl/llcpp/tracking_ptr.h>
#include <lib/fidl/llcpp/traits.h>
#include <lib/fidl/llcpp/transaction.h>
#include <lib/fidl/llcpp/vector_view.h>
#include <lib/fidl/txn_header.h>
#include <lib/fit/function.h>
#include <zircon/fidl.h>
namespace llcpp {
namespace fidl {
namespace test {
namespace json {
class StrictBits final {
public:
constexpr StrictBits() : value_(0u) {}
explicit constexpr StrictBits(uint64_t value) : value_(value) {}
const static StrictBits SMALLEST;
const static StrictBits BIGGEST;
const static StrictBits mask;
explicit constexpr inline operator uint64_t() const { return value_; }
explicit constexpr inline operator bool() const {
return static_cast<bool>(value_);
}
constexpr inline bool operator==(const StrictBits& other) const {
return value_ == other.value_;
}
constexpr inline bool operator!=(const StrictBits& other) const {
return value_ != other.value_;
}
constexpr inline StrictBits operator~() const;
constexpr inline StrictBits operator|(const StrictBits& other) const;
constexpr inline StrictBits operator&(const StrictBits& other) const;
constexpr inline StrictBits operator^(const StrictBits& other) const;
constexpr inline void operator|=(const StrictBits& other);
constexpr inline void operator&=(const StrictBits& other);
constexpr inline void operator^=(const StrictBits& other);
private:
uint64_t value_;
};
constexpr const ::llcpp::fidl::test::json::StrictBits StrictBits::SMALLEST =
::llcpp::fidl::test::json::StrictBits(1u);
constexpr const ::llcpp::fidl::test::json::StrictBits StrictBits::BIGGEST =
::llcpp::fidl::test::json::StrictBits(9223372036854775808u);
constexpr const ::llcpp::fidl::test::json::StrictBits StrictBits::mask =
::llcpp::fidl::test::json::StrictBits(9223372036854775809u);
constexpr inline ::llcpp::fidl::test::json::StrictBits StrictBits::operator~()
const {
return ::llcpp::fidl::test::json::StrictBits(
static_cast<uint64_t>(~this->value_ & mask.value_));
}
constexpr inline ::llcpp::fidl::test::json::StrictBits StrictBits::operator|(
const ::llcpp::fidl::test::json::StrictBits& other) const {
return ::llcpp::fidl::test::json::StrictBits(
static_cast<uint64_t>(this->value_ | other.value_));
}
constexpr inline ::llcpp::fidl::test::json::StrictBits StrictBits::operator&(
const ::llcpp::fidl::test::json::StrictBits& other) const {
return ::llcpp::fidl::test::json::StrictBits(
static_cast<uint64_t>(this->value_ & other.value_));
}
constexpr inline ::llcpp::fidl::test::json::StrictBits StrictBits::operator^(
const ::llcpp::fidl::test::json::StrictBits& other) const {
return ::llcpp::fidl::test::json::StrictBits(
static_cast<uint64_t>(this->value_ ^ other.value_));
}
constexpr inline void StrictBits::operator|=(
const ::llcpp::fidl::test::json::StrictBits& other) {
this->value_ |= other.value_;
}
constexpr inline void StrictBits::operator&=(
const ::llcpp::fidl::test::json::StrictBits& other) {
this->value_ &= other.value_;
}
constexpr inline void StrictBits::operator^=(
const ::llcpp::fidl::test::json::StrictBits& other) {
this->value_ ^= other.value_;
}
class MyBits final {
public:
constexpr MyBits() : value_(0u) {}
explicit constexpr MyBits(uint32_t value) : value_(value) {}
const static MyBits MY_FIRST_BIT;
const static MyBits MY_OTHER_BIT;
const static MyBits mask;
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 MyBits& other) const {
return value_ == other.value_;
}
constexpr inline bool operator!=(const MyBits& other) const {
return value_ != other.value_;
}
constexpr inline MyBits operator~() const;
constexpr inline MyBits operator|(const MyBits& other) const;
constexpr inline MyBits operator&(const MyBits& other) const;
constexpr inline MyBits operator^(const MyBits& other) const;
constexpr inline void operator|=(const MyBits& other);
constexpr inline void operator&=(const MyBits& other);
constexpr inline void operator^=(const MyBits& other);
private:
uint32_t value_;
};
constexpr const ::llcpp::fidl::test::json::MyBits MyBits::MY_FIRST_BIT =
::llcpp::fidl::test::json::MyBits(1u);
constexpr const ::llcpp::fidl::test::json::MyBits MyBits::MY_OTHER_BIT =
::llcpp::fidl::test::json::MyBits(2u);
constexpr const ::llcpp::fidl::test::json::MyBits MyBits::mask =
::llcpp::fidl::test::json::MyBits(3u);
constexpr inline ::llcpp::fidl::test::json::MyBits MyBits::operator~() const {
return ::llcpp::fidl::test::json::MyBits(
static_cast<uint32_t>(~this->value_ & mask.value_));
}
constexpr inline ::llcpp::fidl::test::json::MyBits MyBits::operator|(
const ::llcpp::fidl::test::json::MyBits& other) const {
return ::llcpp::fidl::test::json::MyBits(
static_cast<uint32_t>(this->value_ | other.value_));
}
constexpr inline ::llcpp::fidl::test::json::MyBits MyBits::operator&(
const ::llcpp::fidl::test::json::MyBits& other) const {
return ::llcpp::fidl::test::json::MyBits(
static_cast<uint32_t>(this->value_ & other.value_));
}
constexpr inline ::llcpp::fidl::test::json::MyBits MyBits::operator^(
const ::llcpp::fidl::test::json::MyBits& other) const {
return ::llcpp::fidl::test::json::MyBits(
static_cast<uint32_t>(this->value_ ^ other.value_));
}
constexpr inline void MyBits::operator|=(
const ::llcpp::fidl::test::json::MyBits& other) {
this->value_ |= other.value_;
}
constexpr inline void MyBits::operator&=(
const ::llcpp::fidl::test::json::MyBits& other) {
this->value_ &= other.value_;
}
constexpr inline void MyBits::operator^=(
const ::llcpp::fidl::test::json::MyBits& other) {
this->value_ ^= other.value_;
}
} // namespace json
} // namespace test
} // namespace fidl
} // namespace llcpp
namespace fidl {
template <>
struct IsFidlType<::llcpp::fidl::test::json::StrictBits>
: public std::true_type {};
static_assert(std::is_standard_layout_v<::llcpp::fidl::test::json::StrictBits>);
static_assert(sizeof(::llcpp::fidl::test::json::StrictBits) ==
sizeof(uint64_t));
template <>
struct IsFidlType<::llcpp::fidl::test::json::MyBits> : public std::true_type {};
static_assert(std::is_standard_layout_v<::llcpp::fidl::test::json::MyBits>);
static_assert(sizeof(::llcpp::fidl::test::json::MyBits) == sizeof(uint32_t));
} // namespace fidl