| 97 | // Presize a builder based on parser contents |
| 98 | template <typename BuilderType> |
| 99 | Status PresizeBuilder(const BlockParser& parser, BuilderType* builder) { |
| 100 | RETURN_NOT_OK(builder->Resize(parser.num_rows())); |
| 101 | if constexpr (is_base_binary_type<typename BuilderType::TypeClass>::value) { |
| 102 | return builder->ReserveData(parser.num_bytes()); |
| 103 | } else { |
| 104 | return Status::OK(); |
| 105 | } |
| 106 | } |
| 107 | |
| 108 | ///////////////////////////////////////////////////////////////////////// |
| 109 | // Shared Tries cache to avoid rebuilding them for each decoder instance |