abseil_string_conversions.cc 921 B

123456789101112131415161718192021222324252627282930
  1. // Copyright 2020 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "base/strings/abseil_string_conversions.h"
  5. #include <vector>
  6. #include "base/containers/span.h"
  7. #include "base/ranges/algorithm.h"
  8. #include "base/strings/string_piece.h"
  9. #include "third_party/abseil-cpp/absl/strings/string_view.h"
  10. namespace base {
  11. std::vector<absl::string_view> StringPiecesToStringViews(
  12. span<const StringPiece> pieces) {
  13. std::vector<absl::string_view> views(pieces.size());
  14. ranges::transform(pieces, views.begin(), &StringPieceToStringView);
  15. return views;
  16. }
  17. std::vector<StringPiece> StringViewsToStringPieces(
  18. span<const absl::string_view> views) {
  19. std::vector<StringPiece> pieces(views.size());
  20. ranges::transform(views, pieces.begin(), &StringViewToStringPiece);
  21. return pieces;
  22. }
  23. } // namespace base