| 77 | } |
| 78 | |
| 79 | static arrow::internal::Trie MakeFromTagTrie() { |
| 80 | arrow::internal::TrieBuilder builder; |
| 81 | for (auto kind : {Kind::kNull, Kind::kBoolean, Kind::kNumber, Kind::kString, |
| 82 | Kind::kArray, Kind::kObject, Kind::kNumberOrString}) { |
| 83 | DCHECK_OK(builder.Append(Kind::Name(kind))); |
| 84 | } |
| 85 | auto name_to_kind = builder.Finish(); |
| 86 | DCHECK_OK(name_to_kind.Validate()); |
| 87 | return name_to_kind; |
| 88 | } |
| 89 | |
| 90 | Kind::type Kind::FromTag(const std::shared_ptr<const KeyValueMetadata>& tag) { |
| 91 | static arrow::internal::Trie name_to_kind = MakeFromTagTrie(); |