| 898 | } |
| 899 | |
| 900 | ::arrow::Status Write(int leaf_index, ArrowWriteContext* context, |
| 901 | CallbackFunction write_leaf_callback) override { |
| 902 | if (ARROW_PREDICT_FALSE(leaf_index < 0 || leaf_index >= GetLeafCount())) { |
| 903 | return Status::Invalid("Column index out of bounds (got ", leaf_index, |
| 904 | ", should be " |
| 905 | "between 0 and ", |
| 906 | GetLeafCount(), ")"); |
| 907 | } |
| 908 | |
| 909 | return WritePath(root_range_, &path_builder_->paths()[leaf_index], context, |
| 910 | std::move(write_leaf_callback)); |
| 911 | } |
| 912 | |
| 913 | private: |
| 914 | ElementRange root_range_; |