blob: ad8990cd286015c41744d967b1a8ae24650d6403 [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 SimpleTable;
class ReverseOrdinalTable;
class OlderSimpleTable;
class NewerSimpleTable;
class EmptyTable;
extern "C" const fidl_type_t v1_fidl_test_json_SimpleTableTable;
class SimpleTable final {
public:
// Returns whether no field is set.
bool IsEmpty() const { return max_ordinal_ == 0; }
const int64_t& x() const {
ZX_ASSERT(has_x());
return *frame_ptr_->x_.data;
}
int64_t& x() {
ZX_ASSERT(has_x());
return *frame_ptr_->x_.data;
}
bool has_x() const {
return max_ordinal_ >= 1 && frame_ptr_->x_.data != nullptr;
}
const int64_t& y() const {
ZX_ASSERT(has_y());
return *frame_ptr_->y_.data;
}
int64_t& y() {
ZX_ASSERT(has_y());
return *frame_ptr_->y_.data;
}
bool has_y() const {
return max_ordinal_ >= 5 && frame_ptr_->y_.data != nullptr;
}
SimpleTable() = default;
~SimpleTable() = default;
SimpleTable(SimpleTable&& other) noexcept = default;
SimpleTable& operator=(SimpleTable&& other) noexcept = default;
static constexpr const fidl_type_t* Type =
&v1_fidl_test_json_SimpleTableTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 16;
[[maybe_unused]] static constexpr uint32_t MaxOutOfLine = 96;
static constexpr bool HasPointer = true;
class Builder;
class UnownedBuilder;
class Frame final {
public:
Frame() = default;
// In its intended usage, Frame will be referenced by a tracking_ptr. If the
// tracking_ptr is assigned before a move or copy, then it will reference
// the old invalid object. Because this is unsafe, copies are disallowed and
// moves are only allowed by friend classes that operate safely.
Frame(const Frame&) = delete;
Frame& operator=(const Frame&) = delete;
private:
Frame(Frame&&) noexcept = default;
Frame& operator=(Frame&&) noexcept = default;
::fidl::Envelope<int64_t> x_;
::fidl::Envelope<void> reserved_1_;
::fidl::Envelope<void> reserved_2_;
::fidl::Envelope<void> reserved_3_;
::fidl::Envelope<int64_t> y_;
friend class SimpleTable;
friend class SimpleTable::Builder;
friend class SimpleTable::UnownedBuilder;
};
private:
SimpleTable(uint64_t max_ordinal, ::fidl::tracking_ptr<Frame>&& frame_ptr)
: max_ordinal_(max_ordinal), frame_ptr_(std::move(frame_ptr)) {}
uint64_t max_ordinal_ = 0;
::fidl::tracking_ptr<Frame> frame_ptr_;
};
// SimpleTable::Builder builds SimpleTable.
// Usage:
// SimpleTable val =
// SimpleTable::Builder(std::make_unique<SimpleTable::Frame>()) .set_x(ptr)
// .build();
class SimpleTable::Builder final {
public:
~Builder() = default;
Builder() = delete;
Builder(::fidl::tracking_ptr<SimpleTable::Frame>&& frame_ptr)
: max_ordinal_(0), frame_ptr_(std::move(frame_ptr)) {}
Builder(Builder&& other) noexcept = default;
Builder& operator=(Builder&& other) noexcept = default;
Builder(const Builder& other) = delete;
Builder& operator=(const Builder& other) = delete;
Builder&& set_x(::fidl::tracking_ptr<int64_t> elem) {
frame_ptr_->x_.data = std::move(elem);
if (max_ordinal_ < 1) {
// Note: the table size is not currently reduced if nullptr is set.
// This is possible to reconsider in the future.
max_ordinal_ = 1;
}
return std::move(*this);
}
Builder&& set_y(::fidl::tracking_ptr<int64_t> elem) {
frame_ptr_->y_.data = std::move(elem);
if (max_ordinal_ < 5) {
// Note: the table size is not currently reduced if nullptr is set.
// This is possible to reconsider in the future.
max_ordinal_ = 5;
}
return std::move(*this);
}
SimpleTable build() {
return SimpleTable(max_ordinal_, std::move(frame_ptr_));
}
private:
uint64_t max_ordinal_ = 0;
::fidl::tracking_ptr<SimpleTable::Frame> frame_ptr_;
};
// UnownedBuilder acts like Builder but directly owns its Frame, simplifying
// working with unowned data.
class SimpleTable::UnownedBuilder final {
public:
~UnownedBuilder() = default;
UnownedBuilder() noexcept = default;
UnownedBuilder(UnownedBuilder&& other) noexcept = default;
UnownedBuilder& operator=(UnownedBuilder&& other) noexcept = default;
UnownedBuilder&& set_x(::fidl::tracking_ptr<int64_t> elem) {
ZX_ASSERT(elem);
frame_.x_.data = std::move(elem);
if (max_ordinal_ < 1) {
max_ordinal_ = 1;
}
return std::move(*this);
}
UnownedBuilder&& set_y(::fidl::tracking_ptr<int64_t> elem) {
ZX_ASSERT(elem);
frame_.y_.data = std::move(elem);
if (max_ordinal_ < 5) {
max_ordinal_ = 5;
}
return std::move(*this);
}
SimpleTable build() {
return SimpleTable(max_ordinal_, ::fidl::unowned_ptr(&frame_));
}
private:
uint64_t max_ordinal_ = 0;
SimpleTable::Frame frame_;
};
extern "C" const fidl_type_t v1_fidl_test_json_ReverseOrdinalTableTable;
class ReverseOrdinalTable final {
public:
// Returns whether no field is set.
bool IsEmpty() const { return max_ordinal_ == 0; }
const int64_t& z() const {
ZX_ASSERT(has_z());
return *frame_ptr_->z_.data;
}
int64_t& z() {
ZX_ASSERT(has_z());
return *frame_ptr_->z_.data;
}
bool has_z() const {
return max_ordinal_ >= 1 && frame_ptr_->z_.data != nullptr;
}
const int64_t& y() const {
ZX_ASSERT(has_y());
return *frame_ptr_->y_.data;
}
int64_t& y() {
ZX_ASSERT(has_y());
return *frame_ptr_->y_.data;
}
bool has_y() const {
return max_ordinal_ >= 2 && frame_ptr_->y_.data != nullptr;
}
const int64_t& x() const {
ZX_ASSERT(has_x());
return *frame_ptr_->x_.data;
}
int64_t& x() {
ZX_ASSERT(has_x());
return *frame_ptr_->x_.data;
}
bool has_x() const {
return max_ordinal_ >= 3 && frame_ptr_->x_.data != nullptr;
}
ReverseOrdinalTable() = default;
~ReverseOrdinalTable() = default;
ReverseOrdinalTable(ReverseOrdinalTable&& other) noexcept = default;
ReverseOrdinalTable& operator=(ReverseOrdinalTable&& other) noexcept =
default;
static constexpr const fidl_type_t* Type =
&v1_fidl_test_json_ReverseOrdinalTableTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 16;
[[maybe_unused]] static constexpr uint32_t MaxOutOfLine = 72;
static constexpr bool HasPointer = true;
class Builder;
class UnownedBuilder;
class Frame final {
public:
Frame() = default;
// In its intended usage, Frame will be referenced by a tracking_ptr. If the
// tracking_ptr is assigned before a move or copy, then it will reference
// the old invalid object. Because this is unsafe, copies are disallowed and
// moves are only allowed by friend classes that operate safely.
Frame(const Frame&) = delete;
Frame& operator=(const Frame&) = delete;
private:
Frame(Frame&&) noexcept = default;
Frame& operator=(Frame&&) noexcept = default;
::fidl::Envelope<int64_t> z_;
::fidl::Envelope<int64_t> y_;
::fidl::Envelope<int64_t> x_;
friend class ReverseOrdinalTable;
friend class ReverseOrdinalTable::Builder;
friend class ReverseOrdinalTable::UnownedBuilder;
};
private:
ReverseOrdinalTable(uint64_t max_ordinal,
::fidl::tracking_ptr<Frame>&& frame_ptr)
: max_ordinal_(max_ordinal), frame_ptr_(std::move(frame_ptr)) {}
uint64_t max_ordinal_ = 0;
::fidl::tracking_ptr<Frame> frame_ptr_;
};
// ReverseOrdinalTable::Builder builds ReverseOrdinalTable.
// Usage:
// ReverseOrdinalTable val =
// ReverseOrdinalTable::Builder(std::make_unique<ReverseOrdinalTable::Frame>())
// .set_z(ptr)
// .build();
class ReverseOrdinalTable::Builder final {
public:
~Builder() = default;
Builder() = delete;
Builder(::fidl::tracking_ptr<ReverseOrdinalTable::Frame>&& frame_ptr)
: max_ordinal_(0), frame_ptr_(std::move(frame_ptr)) {}
Builder(Builder&& other) noexcept = default;
Builder& operator=(Builder&& other) noexcept = default;
Builder(const Builder& other) = delete;
Builder& operator=(const Builder& other) = delete;
Builder&& set_z(::fidl::tracking_ptr<int64_t> elem) {
frame_ptr_->z_.data = std::move(elem);
if (max_ordinal_ < 1) {
// Note: the table size is not currently reduced if nullptr is set.
// This is possible to reconsider in the future.
max_ordinal_ = 1;
}
return std::move(*this);
}
Builder&& set_y(::fidl::tracking_ptr<int64_t> elem) {
frame_ptr_->y_.data = std::move(elem);
if (max_ordinal_ < 2) {
// Note: the table size is not currently reduced if nullptr is set.
// This is possible to reconsider in the future.
max_ordinal_ = 2;
}
return std::move(*this);
}
Builder&& set_x(::fidl::tracking_ptr<int64_t> elem) {
frame_ptr_->x_.data = std::move(elem);
if (max_ordinal_ < 3) {
// Note: the table size is not currently reduced if nullptr is set.
// This is possible to reconsider in the future.
max_ordinal_ = 3;
}
return std::move(*this);
}
ReverseOrdinalTable build() {
return ReverseOrdinalTable(max_ordinal_, std::move(frame_ptr_));
}
private:
uint64_t max_ordinal_ = 0;
::fidl::tracking_ptr<ReverseOrdinalTable::Frame> frame_ptr_;
};
// UnownedBuilder acts like Builder but directly owns its Frame, simplifying
// working with unowned data.
class ReverseOrdinalTable::UnownedBuilder final {
public:
~UnownedBuilder() = default;
UnownedBuilder() noexcept = default;
UnownedBuilder(UnownedBuilder&& other) noexcept = default;
UnownedBuilder& operator=(UnownedBuilder&& other) noexcept = default;
UnownedBuilder&& set_z(::fidl::tracking_ptr<int64_t> elem) {
ZX_ASSERT(elem);
frame_.z_.data = std::move(elem);
if (max_ordinal_ < 1) {
max_ordinal_ = 1;
}
return std::move(*this);
}
UnownedBuilder&& set_y(::fidl::tracking_ptr<int64_t> elem) {
ZX_ASSERT(elem);
frame_.y_.data = std::move(elem);
if (max_ordinal_ < 2) {
max_ordinal_ = 2;
}
return std::move(*this);
}
UnownedBuilder&& set_x(::fidl::tracking_ptr<int64_t> elem) {
ZX_ASSERT(elem);
frame_.x_.data = std::move(elem);
if (max_ordinal_ < 3) {
max_ordinal_ = 3;
}
return std::move(*this);
}
ReverseOrdinalTable build() {
return ReverseOrdinalTable(max_ordinal_, ::fidl::unowned_ptr(&frame_));
}
private:
uint64_t max_ordinal_ = 0;
ReverseOrdinalTable::Frame frame_;
};
extern "C" const fidl_type_t v1_fidl_test_json_OlderSimpleTableTable;
class OlderSimpleTable final {
public:
// Returns whether no field is set.
bool IsEmpty() const { return max_ordinal_ == 0; }
const int64_t& x() const {
ZX_ASSERT(has_x());
return *frame_ptr_->x_.data;
}
int64_t& x() {
ZX_ASSERT(has_x());
return *frame_ptr_->x_.data;
}
bool has_x() const {
return max_ordinal_ >= 1 && frame_ptr_->x_.data != nullptr;
}
OlderSimpleTable() = default;
~OlderSimpleTable() = default;
OlderSimpleTable(OlderSimpleTable&& other) noexcept = default;
OlderSimpleTable& operator=(OlderSimpleTable&& other) noexcept = default;
static constexpr const fidl_type_t* Type =
&v1_fidl_test_json_OlderSimpleTableTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 16;
[[maybe_unused]] static constexpr uint32_t MaxOutOfLine = 24;
static constexpr bool HasPointer = true;
class Builder;
class UnownedBuilder;
class Frame final {
public:
Frame() = default;
// In its intended usage, Frame will be referenced by a tracking_ptr. If the
// tracking_ptr is assigned before a move or copy, then it will reference
// the old invalid object. Because this is unsafe, copies are disallowed and
// moves are only allowed by friend classes that operate safely.
Frame(const Frame&) = delete;
Frame& operator=(const Frame&) = delete;
private:
Frame(Frame&&) noexcept = default;
Frame& operator=(Frame&&) noexcept = default;
::fidl::Envelope<int64_t> x_;
friend class OlderSimpleTable;
friend class OlderSimpleTable::Builder;
friend class OlderSimpleTable::UnownedBuilder;
};
private:
OlderSimpleTable(uint64_t max_ordinal,
::fidl::tracking_ptr<Frame>&& frame_ptr)
: max_ordinal_(max_ordinal), frame_ptr_(std::move(frame_ptr)) {}
uint64_t max_ordinal_ = 0;
::fidl::tracking_ptr<Frame> frame_ptr_;
};
// OlderSimpleTable::Builder builds OlderSimpleTable.
// Usage:
// OlderSimpleTable val =
// OlderSimpleTable::Builder(std::make_unique<OlderSimpleTable::Frame>())
// .set_x(ptr)
// .build();
class OlderSimpleTable::Builder final {
public:
~Builder() = default;
Builder() = delete;
Builder(::fidl::tracking_ptr<OlderSimpleTable::Frame>&& frame_ptr)
: max_ordinal_(0), frame_ptr_(std::move(frame_ptr)) {}
Builder(Builder&& other) noexcept = default;
Builder& operator=(Builder&& other) noexcept = default;
Builder(const Builder& other) = delete;
Builder& operator=(const Builder& other) = delete;
Builder&& set_x(::fidl::tracking_ptr<int64_t> elem) {
frame_ptr_->x_.data = std::move(elem);
if (max_ordinal_ < 1) {
// Note: the table size is not currently reduced if nullptr is set.
// This is possible to reconsider in the future.
max_ordinal_ = 1;
}
return std::move(*this);
}
OlderSimpleTable build() {
return OlderSimpleTable(max_ordinal_, std::move(frame_ptr_));
}
private:
uint64_t max_ordinal_ = 0;
::fidl::tracking_ptr<OlderSimpleTable::Frame> frame_ptr_;
};
// UnownedBuilder acts like Builder but directly owns its Frame, simplifying
// working with unowned data.
class OlderSimpleTable::UnownedBuilder final {
public:
~UnownedBuilder() = default;
UnownedBuilder() noexcept = default;
UnownedBuilder(UnownedBuilder&& other) noexcept = default;
UnownedBuilder& operator=(UnownedBuilder&& other) noexcept = default;
UnownedBuilder&& set_x(::fidl::tracking_ptr<int64_t> elem) {
ZX_ASSERT(elem);
frame_.x_.data = std::move(elem);
if (max_ordinal_ < 1) {
max_ordinal_ = 1;
}
return std::move(*this);
}
OlderSimpleTable build() {
return OlderSimpleTable(max_ordinal_, ::fidl::unowned_ptr(&frame_));
}
private:
uint64_t max_ordinal_ = 0;
OlderSimpleTable::Frame frame_;
};
extern "C" const fidl_type_t v1_fidl_test_json_NewerSimpleTableTable;
class NewerSimpleTable final {
public:
// Returns whether no field is set.
bool IsEmpty() const { return max_ordinal_ == 0; }
const int64_t& x() const {
ZX_ASSERT(has_x());
return *frame_ptr_->x_.data;
}
int64_t& x() {
ZX_ASSERT(has_x());
return *frame_ptr_->x_.data;
}
bool has_x() const {
return max_ordinal_ >= 1 && frame_ptr_->x_.data != nullptr;
}
const int64_t& y() const {
ZX_ASSERT(has_y());
return *frame_ptr_->y_.data;
}
int64_t& y() {
ZX_ASSERT(has_y());
return *frame_ptr_->y_.data;
}
bool has_y() const {
return max_ordinal_ >= 5 && frame_ptr_->y_.data != nullptr;
}
const int64_t& z() const {
ZX_ASSERT(has_z());
return *frame_ptr_->z_.data;
}
int64_t& z() {
ZX_ASSERT(has_z());
return *frame_ptr_->z_.data;
}
bool has_z() const {
return max_ordinal_ >= 6 && frame_ptr_->z_.data != nullptr;
}
NewerSimpleTable() = default;
~NewerSimpleTable() = default;
NewerSimpleTable(NewerSimpleTable&& other) noexcept = default;
NewerSimpleTable& operator=(NewerSimpleTable&& other) noexcept = default;
static constexpr const fidl_type_t* Type =
&v1_fidl_test_json_NewerSimpleTableTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 16;
[[maybe_unused]] static constexpr uint32_t MaxOutOfLine = 120;
static constexpr bool HasPointer = true;
class Builder;
class UnownedBuilder;
class Frame final {
public:
Frame() = default;
// In its intended usage, Frame will be referenced by a tracking_ptr. If the
// tracking_ptr is assigned before a move or copy, then it will reference
// the old invalid object. Because this is unsafe, copies are disallowed and
// moves are only allowed by friend classes that operate safely.
Frame(const Frame&) = delete;
Frame& operator=(const Frame&) = delete;
private:
Frame(Frame&&) noexcept = default;
Frame& operator=(Frame&&) noexcept = default;
::fidl::Envelope<int64_t> x_;
::fidl::Envelope<void> reserved_1_;
::fidl::Envelope<void> reserved_2_;
::fidl::Envelope<void> reserved_3_;
::fidl::Envelope<int64_t> y_;
::fidl::Envelope<int64_t> z_;
friend class NewerSimpleTable;
friend class NewerSimpleTable::Builder;
friend class NewerSimpleTable::UnownedBuilder;
};
private:
NewerSimpleTable(uint64_t max_ordinal,
::fidl::tracking_ptr<Frame>&& frame_ptr)
: max_ordinal_(max_ordinal), frame_ptr_(std::move(frame_ptr)) {}
uint64_t max_ordinal_ = 0;
::fidl::tracking_ptr<Frame> frame_ptr_;
};
// NewerSimpleTable::Builder builds NewerSimpleTable.
// Usage:
// NewerSimpleTable val =
// NewerSimpleTable::Builder(std::make_unique<NewerSimpleTable::Frame>())
// .set_x(ptr)
// .build();
class NewerSimpleTable::Builder final {
public:
~Builder() = default;
Builder() = delete;
Builder(::fidl::tracking_ptr<NewerSimpleTable::Frame>&& frame_ptr)
: max_ordinal_(0), frame_ptr_(std::move(frame_ptr)) {}
Builder(Builder&& other) noexcept = default;
Builder& operator=(Builder&& other) noexcept = default;
Builder(const Builder& other) = delete;
Builder& operator=(const Builder& other) = delete;
Builder&& set_x(::fidl::tracking_ptr<int64_t> elem) {
frame_ptr_->x_.data = std::move(elem);
if (max_ordinal_ < 1) {
// Note: the table size is not currently reduced if nullptr is set.
// This is possible to reconsider in the future.
max_ordinal_ = 1;
}
return std::move(*this);
}
Builder&& set_y(::fidl::tracking_ptr<int64_t> elem) {
frame_ptr_->y_.data = std::move(elem);
if (max_ordinal_ < 5) {
// Note: the table size is not currently reduced if nullptr is set.
// This is possible to reconsider in the future.
max_ordinal_ = 5;
}
return std::move(*this);
}
Builder&& set_z(::fidl::tracking_ptr<int64_t> elem) {
frame_ptr_->z_.data = std::move(elem);
if (max_ordinal_ < 6) {
// Note: the table size is not currently reduced if nullptr is set.
// This is possible to reconsider in the future.
max_ordinal_ = 6;
}
return std::move(*this);
}
NewerSimpleTable build() {
return NewerSimpleTable(max_ordinal_, std::move(frame_ptr_));
}
private:
uint64_t max_ordinal_ = 0;
::fidl::tracking_ptr<NewerSimpleTable::Frame> frame_ptr_;
};
// UnownedBuilder acts like Builder but directly owns its Frame, simplifying
// working with unowned data.
class NewerSimpleTable::UnownedBuilder final {
public:
~UnownedBuilder() = default;
UnownedBuilder() noexcept = default;
UnownedBuilder(UnownedBuilder&& other) noexcept = default;
UnownedBuilder& operator=(UnownedBuilder&& other) noexcept = default;
UnownedBuilder&& set_x(::fidl::tracking_ptr<int64_t> elem) {
ZX_ASSERT(elem);
frame_.x_.data = std::move(elem);
if (max_ordinal_ < 1) {
max_ordinal_ = 1;
}
return std::move(*this);
}
UnownedBuilder&& set_y(::fidl::tracking_ptr<int64_t> elem) {
ZX_ASSERT(elem);
frame_.y_.data = std::move(elem);
if (max_ordinal_ < 5) {
max_ordinal_ = 5;
}
return std::move(*this);
}
UnownedBuilder&& set_z(::fidl::tracking_ptr<int64_t> elem) {
ZX_ASSERT(elem);
frame_.z_.data = std::move(elem);
if (max_ordinal_ < 6) {
max_ordinal_ = 6;
}
return std::move(*this);
}
NewerSimpleTable build() {
return NewerSimpleTable(max_ordinal_, ::fidl::unowned_ptr(&frame_));
}
private:
uint64_t max_ordinal_ = 0;
NewerSimpleTable::Frame frame_;
};
extern "C" const fidl_type_t v1_fidl_test_json_EmptyTableTable;
class EmptyTable final {
public:
// Returns whether no field is set.
bool IsEmpty() const { return max_ordinal_ == 0; }
EmptyTable() = default;
~EmptyTable() = default;
EmptyTable(EmptyTable&& other) noexcept = default;
EmptyTable& operator=(EmptyTable&& other) noexcept = default;
static constexpr const fidl_type_t* Type = &v1_fidl_test_json_EmptyTableTable;
static constexpr uint32_t MaxNumHandles = 0;
static constexpr uint32_t PrimarySize = 16;
[[maybe_unused]] static constexpr uint32_t MaxOutOfLine = 0;
static constexpr bool HasPointer = true;
class Builder;
class UnownedBuilder;
class Frame final {
public:
Frame() = default;
// In its intended usage, Frame will be referenced by a tracking_ptr. If the
// tracking_ptr is assigned before a move or copy, then it will reference
// the old invalid object. Because this is unsafe, copies are disallowed and
// moves are only allowed by friend classes that operate safely.
Frame(const Frame&) = delete;
Frame& operator=(const Frame&) = delete;
private:
Frame(Frame&&) noexcept = default;
Frame& operator=(Frame&&) noexcept = default;
friend class EmptyTable;
friend class EmptyTable::Builder;
friend class EmptyTable::UnownedBuilder;
};
private:
EmptyTable(uint64_t max_ordinal, ::fidl::tracking_ptr<Frame>&& frame_ptr)
: max_ordinal_(max_ordinal), frame_ptr_(std::move(frame_ptr)) {}
uint64_t max_ordinal_ = 0;
::fidl::tracking_ptr<Frame> frame_ptr_;
};
// EmptyTable::Builder builds EmptyTable.
// Usage:
// EmptyTable val = EmptyTable::Builder(std::make_unique<EmptyTable::Frame>())
// .build();
class EmptyTable::Builder final {
public:
~Builder() = default;
Builder() = delete;
Builder(::fidl::tracking_ptr<EmptyTable::Frame>&& frame_ptr)
: max_ordinal_(0), frame_ptr_(std::move(frame_ptr)) {}
Builder(Builder&& other) noexcept = default;
Builder& operator=(Builder&& other) noexcept = default;
Builder(const Builder& other) = delete;
Builder& operator=(const Builder& other) = delete;
EmptyTable build() { return EmptyTable(max_ordinal_, std::move(frame_ptr_)); }
private:
uint64_t max_ordinal_ = 0;
::fidl::tracking_ptr<EmptyTable::Frame> frame_ptr_;
};
// UnownedBuilder acts like Builder but directly owns its Frame, simplifying
// working with unowned data.
class EmptyTable::UnownedBuilder final {
public:
~UnownedBuilder() = default;
UnownedBuilder() noexcept = default;
UnownedBuilder(UnownedBuilder&& other) noexcept = default;
UnownedBuilder& operator=(UnownedBuilder&& other) noexcept = default;
EmptyTable build() { return EmptyTable(max_ordinal_, nullptr); }
private:
uint64_t max_ordinal_ = 0;
};
} // namespace json
} // namespace test
} // namespace fidl
} // namespace llcpp
namespace fidl {
template <>
struct IsFidlType<::llcpp::fidl::test::json::SimpleTable>
: public std::true_type {};
static_assert(
std::is_standard_layout_v<::llcpp::fidl::test::json::SimpleTable>);
template <>
struct IsFidlType<::llcpp::fidl::test::json::ReverseOrdinalTable>
: public std::true_type {};
static_assert(
std::is_standard_layout_v<::llcpp::fidl::test::json::ReverseOrdinalTable>);
template <>
struct IsFidlType<::llcpp::fidl::test::json::OlderSimpleTable>
: public std::true_type {};
static_assert(
std::is_standard_layout_v<::llcpp::fidl::test::json::OlderSimpleTable>);
template <>
struct IsFidlType<::llcpp::fidl::test::json::NewerSimpleTable>
: public std::true_type {};
static_assert(
std::is_standard_layout_v<::llcpp::fidl::test::json::NewerSimpleTable>);
template <>
struct IsFidlType<::llcpp::fidl::test::json::EmptyTable>
: public std::true_type {};
static_assert(std::is_standard_layout_v<::llcpp::fidl::test::json::EmptyTable>);
} // namespace fidl