| 542 | Status Init() override { return this->MakeConcreteBuilder(&builder_); } |
| 543 | |
| 544 | Status AppendValue(const rj::Value& json_obj) override { |
| 545 | if (json_obj.IsNull()) { |
| 546 | return this->AppendNull(); |
| 547 | } |
| 548 | if (json_obj.IsString()) { |
| 549 | auto view = std::string_view(json_obj.GetString(), json_obj.GetStringLength()); |
| 550 | if (view.length() != static_cast<size_t>(builder_->byte_width())) { |
| 551 | std::stringstream ss; |
| 552 | ss << "Invalid string length " << view.length() << " in JSON input for " |
| 553 | << this->type_->ToString(); |
| 554 | return Status::Invalid(ss.str()); |
| 555 | } |
| 556 | return builder_->Append(view); |
| 557 | } else { |
| 558 | return JSONTypeError("string", json_obj.GetType()); |
| 559 | } |
| 560 | } |
| 561 | |
| 562 | std::shared_ptr<ArrayBuilder> builder() override { return builder_; } |
| 563 |
nothing calls this directly
no test coverage detected