| 1233 | struct StringBuilderVisitor { |
| 1234 | template <typename DataType> |
| 1235 | enable_if_t<has_string_view<DataType>::value, Status> Visit( |
| 1236 | const DataType&, ArrayBuilder* raw_builder, |
| 1237 | const std::vector<std::string>& values) { |
| 1238 | using Builder = typename TypeTraits<DataType>::BuilderType; |
| 1239 | auto builder = static_cast<Builder*>(raw_builder); |
| 1240 | for (const auto& value : values) { |
| 1241 | ARROW_RETURN_NOT_OK(builder->Append(value)); |
| 1242 | } |
| 1243 | return Status::OK(); |
| 1244 | } |
| 1245 | |
| 1246 | Status Visit(const DataType& type, ArrayBuilder*, const std::vector<std::string>&) { |
| 1247 | return Status::Invalid("Only string types are supported and the current type is", |