| 443 | class Schema { |
| 444 | public: |
| 445 | explicit Schema(std::vector<FieldPtr> fields, |
| 446 | std::unordered_map<std::string, std::string> metadata = {}) |
| 447 | : fields_(std::move(fields)), metadata_(std::move(metadata)) { |
| 448 | for (size_t i = 0; i < fields_.size(); ++i) { |
| 449 | name_to_index_[fields_[i]->name()] = static_cast<int>(i); |
| 450 | } |
| 451 | } |
| 452 | |
| 453 | int num_fields() const { return static_cast<int>(fields_.size()); } |
| 454 |