| 312 | } |
| 313 | |
| 314 | std::shared_ptr<Field> Field::WithMergedMetadata( |
| 315 | const std::shared_ptr<const KeyValueMetadata>& metadata) const { |
| 316 | std::shared_ptr<const KeyValueMetadata> merged_metadata; |
| 317 | if (metadata_) { |
| 318 | merged_metadata = metadata_->Merge(*metadata); |
| 319 | } else { |
| 320 | merged_metadata = metadata; |
| 321 | } |
| 322 | return std::make_shared<Field>(name_, type_, nullable_, merged_metadata); |
| 323 | } |
| 324 | |
| 325 | std::shared_ptr<Field> Field::RemoveMetadata() const { |
| 326 | return std::make_shared<Field>(name_, type_, nullable_); |