| // Copyright 2020 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef BASE_STRINGS_ABSEIL_STRING_CONVERSIONS_H_ |
| #define BASE_STRINGS_ABSEIL_STRING_CONVERSIONS_H_ |
| |
| #include <vector> |
| |
| #include "polyfills/base/base_export.h" |
| #include "base/containers/span.h" |
| #include "base/strings/string_piece.h" |
| #include "absl/strings/string_view.h" |
| |
| namespace gurl_base { |
| |
| // Converts `piece` to a string view, pointing to the same piece of memory. |
| constexpr absl::string_view StringPieceToStringView(StringPiece piece) { |
| return {piece.data(), piece.size()}; |
| } |
| |
| // Converts `view` to a string piece, pointing to the same piece of memory. |
| constexpr StringPiece StringViewToStringPiece(absl::string_view view) { |
| return {view.data(), view.size()}; |
| } |
| |
| // Converts `pieces` to string views, pointing to the same piece of memory. |
| BASE_EXPORT std::vector<absl::string_view> StringPiecesToStringViews( |
| span<const StringPiece> pieces); |
| |
| // Converts `views` to string pieces, pointing to the same piece of memory. |
| BASE_EXPORT std::vector<StringPiece> StringViewsToStringPieces( |
| span<const absl::string_view> views); |
| |
| } // namespace base |
| |
| #endif // BASE_STRINGS_ABSEIL_STRING_CONVERSIONS_H_ |