| // WARNING: This file is machine generated by fidlgen. |
| |
| #include <fidl/test/struct/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 struct_ { |
| extern "C" const fidl_type_t fidl_test_struct_SimpleTable; |
| const fidl_type_t* Simple::FidlType = &fidl_test_struct_SimpleTable; |
| |
| void Simple::Encode( |
| ::fidl::Encoder* _encoder, size_t _offset, |
| cpp17::optional<::fidl::HandleInformation> maybe_handle_info) { |
| if (::fidl::IsMemcpyCompatible<Simple>::value) { |
| memcpy(_encoder->template GetPtr<Simple>(_offset), this, sizeof(Simple)); |
| } else { |
| ::fidl::Encode(_encoder, &f1, _offset + 0); |
| ::fidl::Encode(_encoder, &f2, _offset + 1); |
| } |
| } |
| |
| void Simple::Decode(::fidl::Decoder* _decoder, Simple* _value, size_t _offset) { |
| if (::fidl::IsMemcpyCompatible<Simple>::value) { |
| memcpy(_value, _decoder->template GetPtr<Simple>(_offset), sizeof(Simple)); |
| } else { |
| ::fidl::Decode(_decoder, &_value->f1, _offset + 0); |
| ::fidl::Decode(_decoder, &_value->f2, _offset + 1); |
| } |
| } |
| |
| zx_status_t Simple::Clone(Simple* _result) const { |
| zx_status_t _status = ::fidl::Clone(f1, &_result->f1); |
| if (_status != ZX_OK) return _status; |
| _status = ::fidl::Clone(f2, &_result->f2); |
| if (_status != ZX_OK) return _status; |
| return ZX_OK; |
| } |
| |
| extern "C" const fidl_type_t fidl_test_struct_BasicStructTable; |
| const fidl_type_t* BasicStruct::FidlType = &fidl_test_struct_BasicStructTable; |
| |
| void BasicStruct::Encode( |
| ::fidl::Encoder* _encoder, size_t _offset, |
| cpp17::optional<::fidl::HandleInformation> maybe_handle_info) { |
| if (::fidl::IsMemcpyCompatible<BasicStruct>::value) { |
| memcpy(_encoder->template GetPtr<BasicStruct>(_offset), this, |
| sizeof(BasicStruct)); |
| } else { |
| ::fidl::Encode(_encoder, &x, _offset + 0); |
| ::fidl::Encode(_encoder, &y, _offset + 8); |
| } |
| } |
| |
| void BasicStruct::Decode(::fidl::Decoder* _decoder, BasicStruct* _value, |
| size_t _offset) { |
| if (::fidl::IsMemcpyCompatible<BasicStruct>::value) { |
| memcpy(_value, _decoder->template GetPtr<BasicStruct>(_offset), |
| sizeof(BasicStruct)); |
| } else { |
| ::fidl::Decode(_decoder, &_value->x, _offset + 0); |
| ::fidl::Decode(_decoder, &_value->y, _offset + 8); |
| } |
| } |
| |
| zx_status_t BasicStruct::Clone(BasicStruct* _result) const { |
| zx_status_t _status = ::fidl::Clone(x, &_result->x); |
| if (_status != ZX_OK) return _status; |
| _status = ::fidl::Clone(y, &_result->y); |
| if (_status != ZX_OK) return _status; |
| return ZX_OK; |
| } |
| |
| } // namespace struct_ |
| } // namespace test |
| } // namespace fidl |