// DO NOT EDIT! This file was auto-generated by crates/build/re_types_builder/src/codegen/cpp/mod.rs // Based on "crates/store/re_sdk_types/definitions/rerun/testing/components/fuzzy.fbs". #include "affix_fuzzer16.hpp" #include "../datatypes/affix_fuzzer3.hpp" #include #include namespace rerun::components {} namespace rerun { const std::shared_ptr& Loggable::arrow_datatype() { static const auto datatype = arrow::list( arrow::field("item", Loggable::arrow_datatype(), true) ); return datatype; } Result> Loggable::to_arrow( const components::AffixFuzzer16* instances, size_t num_instances ) { // TODO(andreas): Allow configuring the memory pool. arrow::MemoryPool* pool = arrow::default_memory_pool(); auto datatype = arrow_datatype(); ARROW_ASSIGN_OR_RAISE(auto builder, arrow::MakeBuilder(datatype, pool)) if (instances && num_instances > 0) { RR_RETURN_NOT_OK(Loggable::fill_arrow_array_builder( static_cast(builder.get()), instances, num_instances )); } std::shared_ptr array; ARROW_RETURN_NOT_OK(builder->Finish(&array)); return array; } rerun::Error Loggable::fill_arrow_array_builder( arrow::ListBuilder* builder, const components::AffixFuzzer16* elements, size_t num_elements ) { if (builder == nullptr) { return rerun::Error(ErrorCode::UnexpectedNullArgument, "Passed array builder is null."); } if (elements == nullptr) { return rerun::Error( ErrorCode::UnexpectedNullArgument, "Cannot serialize null pointer to arrow array." ); } auto value_builder = static_cast(builder->value_builder()); ARROW_RETURN_NOT_OK(builder->Reserve(static_cast(num_elements))); ARROW_RETURN_NOT_OK(value_builder->Reserve(static_cast(num_elements * 2))); for (size_t elem_idx = 0; elem_idx < num_elements; elem_idx += 1) { const auto& element = elements[elem_idx]; ARROW_RETURN_NOT_OK(builder->Append()); if (element.many_required_unions.data()) { RR_RETURN_NOT_OK(Loggable::fill_arrow_array_builder( value_builder, element.many_required_unions.data(), element.many_required_unions.size() )); } } return Error::ok(); } } // namespace rerun