blob: bdbcac436160c93bc191584f2d437a7d24c96523 [file] [log] [blame]
// WARNING: This file is machine generated by fidlgen.
#include <fidl/test/byteandbytes/cpp/natural_types.h>
#include "lib/fidl/cpp/internal/natural_types_implementation.h"
//
// Domain objects definitions (i.e. "natural types" in unified bindings)
//
namespace fidl {
namespace test {
namespace byteandbytes {
extern "C" const fidl_type_t fidl_test_byteandbytes_ByteAndBytesTable;
const fidl_type_t* ByteAndBytes::FidlType =
&fidl_test_byteandbytes_ByteAndBytesTable;
void ByteAndBytes::Encode(
::fidl::Encoder* _encoder, size_t _offset,
cpp17::optional<::fidl::HandleInformation> maybe_handle_info) {
if (::fidl::IsMemcpyCompatible<ByteAndBytes>::value) {
memcpy(_encoder->template GetPtr<ByteAndBytes>(_offset), this,
sizeof(ByteAndBytes));
} else {
::fidl::Encode(_encoder, &single_byte, _offset + 0);
::fidl::Encode(_encoder, &many_bytes, _offset + 8);
::fidl::Encode(_encoder, &only_one_k_bytes, _offset + 24);
::fidl::Encode(_encoder, &opt_only_one_k_bytes, _offset + 40);
}
}
void ByteAndBytes::Decode(::fidl::Decoder* _decoder, ByteAndBytes* _value,
size_t _offset) {
if (::fidl::IsMemcpyCompatible<ByteAndBytes>::value) {
memcpy(_value, _decoder->template GetPtr<ByteAndBytes>(_offset),
sizeof(ByteAndBytes));
} else {
::fidl::Decode(_decoder, &_value->single_byte, _offset + 0);
::fidl::Decode(_decoder, &_value->many_bytes, _offset + 8);
::fidl::Decode(_decoder, &_value->only_one_k_bytes, _offset + 24);
::fidl::Decode(_decoder, &_value->opt_only_one_k_bytes, _offset + 40);
}
}
zx_status_t ByteAndBytes::Clone(ByteAndBytes* _result) const {
zx_status_t _status = ::fidl::Clone(single_byte, &_result->single_byte);
if (_status != ZX_OK) return _status;
_status = ::fidl::Clone(many_bytes, &_result->many_bytes);
if (_status != ZX_OK) return _status;
_status = ::fidl::Clone(only_one_k_bytes, &_result->only_one_k_bytes);
if (_status != ZX_OK) return _status;
_status = ::fidl::Clone(opt_only_one_k_bytes, &_result->opt_only_one_k_bytes);
if (_status != ZX_OK) return _status;
return ZX_OK;
}
} // namespace byteandbytes
} // namespace test
} // namespace fidl