blob: ffb068811aeb761d542adfd75703b1f888db7a84 [file] [log] [blame]
// 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_