blob: d8d683b4ee2503895ca52e81165ac241f130ed5c [file] [log] [blame]
// WARNING: This file is machine generated by fidlgen.
#pragma once
#include <fidl/test.typealiases/cpp/common_types.h>
#include <fidl/test.typealiases/cpp/markers.h>
#include <lib/fidl/cpp/natural_coding_traits.h>
#include <lib/fidl/cpp/natural_types.h>
#include <cinttypes>
#include <string>
#ifdef __Fuchsia__
#include <lib/zx/channel.h>
#endif // __Fuchsia__
#include <fidl/test.someotherlibrary/cpp/natural_types.h>
namespace test_typealiases {
class ExampleOfUseOfAliases;
#ifdef __Fuchsia__
extern "C" const fidl_type_t test_typealiases_ExampleOfUseOfAliasesTable;
class ExampleOfUseOfAliases {
private:
struct Storage_;
public:
ExampleOfUseOfAliases(Storage_ storage) noexcept
: storage_(std::move(storage)) {}
ExampleOfUseOfAliases(
uint32_t field_of_u32,
::std::vector<::std::string> field_of_vec_of_strings,
::std::vector<::std::string> field_of_vec_of_strings_at_most_nine,
::std::vector<::std::string> field_of_vec_of_strings_at_most_5,
::std::vector<::test_someotherlibrary::ReferenceMe>
field_of_vec_of_ref_me_at_most_5,
::zx::channel field_of_channel, ::zx::channel field_of_client_end,
::zx::channel field_of_nullable_client_end) noexcept
: storage_({.field_of_u32 = std::move(field_of_u32),
.field_of_vec_of_strings = std::move(field_of_vec_of_strings),
.field_of_vec_of_strings_at_most_nine =
std::move(field_of_vec_of_strings_at_most_nine),
.field_of_vec_of_strings_at_most_5 =
std::move(field_of_vec_of_strings_at_most_5),
.field_of_vec_of_ref_me_at_most_5 =
std::move(field_of_vec_of_ref_me_at_most_5),
.field_of_channel = std::move(field_of_channel),
.field_of_client_end = std::move(field_of_client_end),
.field_of_nullable_client_end =
std::move(field_of_nullable_client_end)}) {}
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdefaulted-function-deleted"
// Default constructs a |ExampleOfUseOfAliases| only if all of its members are
// default constructible.
ExampleOfUseOfAliases() = default;
#pragma clang diagnostic pop
ExampleOfUseOfAliases(ExampleOfUseOfAliases&&) noexcept = default;
ExampleOfUseOfAliases& operator=(ExampleOfUseOfAliases&&) noexcept = default;
uint32_t field_of_u32() const { return storage_.field_of_u32; }
uint32_t& field_of_u32() { return storage_.field_of_u32; }
const ::std::vector<::std::string>& field_of_vec_of_strings() const {
return storage_.field_of_vec_of_strings;
}
::std::vector<::std::string>& field_of_vec_of_strings() {
return storage_.field_of_vec_of_strings;
}
const ::std::vector<::std::string>& field_of_vec_of_strings_at_most_nine()
const {
return storage_.field_of_vec_of_strings_at_most_nine;
}
::std::vector<::std::string>& field_of_vec_of_strings_at_most_nine() {
return storage_.field_of_vec_of_strings_at_most_nine;
}
const ::std::vector<::std::string>& field_of_vec_of_strings_at_most_5()
const {
return storage_.field_of_vec_of_strings_at_most_5;
}
::std::vector<::std::string>& field_of_vec_of_strings_at_most_5() {
return storage_.field_of_vec_of_strings_at_most_5;
}
const ::std::vector<::test_someotherlibrary::ReferenceMe>&
field_of_vec_of_ref_me_at_most_5() const {
return storage_.field_of_vec_of_ref_me_at_most_5;
}
::std::vector<::test_someotherlibrary::ReferenceMe>&
field_of_vec_of_ref_me_at_most_5() {
return storage_.field_of_vec_of_ref_me_at_most_5;
}
const ::zx::channel& field_of_channel() const {
return storage_.field_of_channel;
}
::zx::channel& field_of_channel() { return storage_.field_of_channel; }
const ::zx::channel& field_of_client_end() const {
return storage_.field_of_client_end;
}
::zx::channel& field_of_client_end() { return storage_.field_of_client_end; }
const ::zx::channel& field_of_nullable_client_end() const {
return storage_.field_of_nullable_client_end;
}
::zx::channel& field_of_nullable_client_end() {
return storage_.field_of_nullable_client_end;
}
ExampleOfUseOfAliases(
::fidl::internal::DefaultConstructPossiblyInvalidObjectTag)
: ExampleOfUseOfAliases(Storage_{
.field_of_u32 = {},
.field_of_vec_of_strings = {},
.field_of_vec_of_strings_at_most_nine = {},
.field_of_vec_of_strings_at_most_5 = {},
.field_of_vec_of_ref_me_at_most_5 = {},
.field_of_channel = {},
.field_of_client_end = {},
.field_of_nullable_client_end = {},
}) {}
private:
struct Storage_ final {
uint32_t field_of_u32 = {};
::std::vector<::std::string> field_of_vec_of_strings;
::std::vector<::std::string> field_of_vec_of_strings_at_most_nine;
::std::vector<::std::string> field_of_vec_of_strings_at_most_5;
::std::vector<::test_someotherlibrary::ReferenceMe>
field_of_vec_of_ref_me_at_most_5;
::zx::channel field_of_channel;
::zx::channel field_of_client_end;
::zx::channel field_of_nullable_client_end;
};
Storage_ storage_;
friend struct ::fidl::internal::NaturalStructCodingTraits<
::test_typealiases::ExampleOfUseOfAliases, 88>;
friend struct ::fidl::internal::MemberVisitor<
::test_typealiases::ExampleOfUseOfAliases>;
static constexpr auto kMembers = std::make_tuple(
::fidl::internal::NaturalStructMember<
Storage_, uint32_t, fidl::internal::NaturalCodingConstraintEmpty>{
&Storage_::field_of_u32, 0},
::fidl::internal::NaturalStructMember<
Storage_, ::std::vector<::std::string>,
fidl::internal::NaturalCodingConstraintVector<
fidl::internal::NaturalCodingConstraintString<>>>{
&Storage_::field_of_vec_of_strings, 8},
::fidl::internal::NaturalStructMember<
Storage_, ::std::vector<::std::string>,
fidl::internal::NaturalCodingConstraintVector<
fidl::internal::NaturalCodingConstraintString<>, 9>>{
&Storage_::field_of_vec_of_strings_at_most_nine, 24},
::fidl::internal::NaturalStructMember<
Storage_, ::std::vector<::std::string>,
fidl::internal::NaturalCodingConstraintVector<
fidl::internal::NaturalCodingConstraintString<>, 5>>{
&Storage_::field_of_vec_of_strings_at_most_5, 40},
::fidl::internal::NaturalStructMember<
Storage_, ::std::vector<::test_someotherlibrary::ReferenceMe>,
fidl::internal::NaturalCodingConstraintVector<
fidl::internal::NaturalCodingConstraintEmpty, 5>>{
&Storage_::field_of_vec_of_ref_me_at_most_5, 56},
::fidl::internal::NaturalStructMember<
Storage_, ::zx::channel,
fidl::internal::NaturalCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL,
0x80000000, false>>{
&Storage_::field_of_channel, 72},
::fidl::internal::NaturalStructMember<
Storage_, ::zx::channel,
fidl::internal::NaturalCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL,
0x80000000, false>>{
&Storage_::field_of_client_end, 76},
::fidl::internal::NaturalStructMember<
Storage_, ::zx::channel,
fidl::internal::NaturalCodingConstraintHandle<ZX_OBJ_TYPE_CHANNEL,
0x80000000, true>>{
&Storage_::field_of_nullable_client_end, 80});
static constexpr auto kPadding = std::make_tuple(
::fidl::internal::NaturalStructPadding<uint64_t>{
.offset = 0,
.mask = 0xffffffff00000000ull,
},
::fidl::internal::NaturalStructPadding<uint64_t>{
.offset = 80,
.mask = 0xffffffff00000000ull,
});
};
#endif // __Fuchsia__
} // namespace test_typealiases
namespace fidl {
#ifdef __Fuchsia__
extern "C" const fidl_type_t test_typealiases_ExampleOfUseOfAliasesTable;
template <>
struct IsResource<::test_typealiases::ExampleOfUseOfAliases>
: public std::true_type {};
template <>
struct IsFidlType<::test_typealiases::ExampleOfUseOfAliases>
: public std::true_type {};
template <>
struct ::fidl::internal::TypeTraits<::test_typealiases::ExampleOfUseOfAliases>
final {
public:
static constexpr const fidl_type_t* kCodingTable =
&test_typealiases_ExampleOfUseOfAliasesTable;
};
template <>
struct internal::NaturalCodingTraits<
::test_typealiases::ExampleOfUseOfAliases,
::fidl::internal::NaturalCodingConstraintEmpty>
final : public ::fidl::internal::NaturalStructCodingTraits<
::test_typealiases::ExampleOfUseOfAliases, 88> {};
#endif // __Fuchsia__
template <>
struct internal::NaturalCodingTraits<
::test_typealiases::ObjType,
::fidl::internal::NaturalCodingConstraintEmpty> {
static constexpr size_t inline_size_v2 = sizeof(uint32_t);
static constexpr bool is_memcpy_compatible = false;
static void Encode(internal::NaturalEncoder* encoder,
::test_typealiases::ObjType* value, size_t offset,
size_t recursion_depth) {
switch (*value) {
case ::test_typealiases::ObjType::kNone:
case ::test_typealiases::ObjType::kChannel:
break;
default:
encoder->SetError(::fidl::internal::kCodingErrorUnknownEnumValue);
return;
}
*encoder->template GetPtr<::test_typealiases::ObjType>(offset) = *value;
}
static void Decode(internal::NaturalDecoder* decoder,
::test_typealiases::ObjType* value, size_t offset,
size_t recursion_depth) {
*value = *decoder->template GetPtr<::test_typealiases::ObjType>(offset);
switch (*value) {
case ::test_typealiases::ObjType::kNone:
case ::test_typealiases::ObjType::kChannel:
break;
default:
decoder->SetError(::fidl::internal::kCodingErrorUnknownEnumValue);
return;
}
}
};
} // namespace fidl