| 858 | } |
| 859 | |
| 860 | Status EndObjectImpl() { |
| 861 | auto parent = builder_stack_.back(); |
| 862 | |
| 863 | auto expected_count = absent_fields_stack_.TopSize(); |
| 864 | for (int i = 0; i < expected_count; ++i) { |
| 865 | if (!absent_fields_stack_[i]) { |
| 866 | continue; |
| 867 | } |
| 868 | auto field_builder = Cast<Kind::kObject>(parent)->field_builder(i); |
| 869 | if (ARROW_PREDICT_FALSE(!field_builder.nullable)) { |
| 870 | return ParseError("a required field was absent"); |
| 871 | } |
| 872 | RETURN_NOT_OK(builder_set_.AppendNull(parent, i, field_builder)); |
| 873 | } |
| 874 | absent_fields_stack_.Pop(); |
| 875 | EndNested(); |
| 876 | return Status::OK(); |
| 877 | } |
| 878 | |
| 879 | Status StartArrayImpl() { |
| 880 | constexpr auto kind = Kind::kArray; |
nothing calls this directly
no test coverage detected