| 456 | int size() const override { return static_cast<int>(Size()); } |
| 457 | |
| 458 | absl::Status Append(Value value) const override { |
| 459 | CEL_RETURN_IF_ERROR(CheckListElement(value)); |
| 460 | elements_.emplace_back(std::move(value)); |
| 461 | if (elements_trivially_destructible_) { |
| 462 | elements_trivially_destructible_ = |
| 463 | ArenaTraits<>::trivially_destructible(elements_.back()); |
| 464 | if (!elements_trivially_destructible_) { |
| 465 | elements_.get_allocator().arena()->OwnDestructor( |
| 466 | const_cast<MutableCompatListValueImpl*>(this)); |
| 467 | } |
| 468 | } |
| 469 | return absl::OkStatus(); |
| 470 | } |
| 471 | |
| 472 | void Reserve(size_t capacity) const override { elements_.reserve(capacity); } |
| 473 | |