| 621 | } |
| 622 | |
| 623 | absl::string_view ByteString::ToStringView( |
| 624 | std::string* absl_nonnull scratch) const { |
| 625 | ABSL_DCHECK(scratch != nullptr); |
| 626 | |
| 627 | switch (GetKind()) { |
| 628 | case ByteStringKind::kSmall: |
| 629 | return GetSmall(); |
| 630 | case ByteStringKind::kMedium: |
| 631 | return GetMedium(); |
| 632 | case ByteStringKind::kLarge: |
| 633 | if (auto flat = GetLarge().TryFlat(); flat) { |
| 634 | return *flat; |
| 635 | } |
| 636 | absl::CopyCordToString(GetLarge(), scratch); |
| 637 | return absl::string_view(*scratch); |
| 638 | } |
| 639 | } |
| 640 | |
| 641 | absl::string_view ByteString::AsStringView() const { |
| 642 | const ByteStringKind kind = GetKind(); |