blob: fb1c2d2903a65e0c84feccda068e7af4c7fd80f6 [file] [log] [blame] [edit]
// Part of the Crubit project, under the Apache License v2.0 with LLVM
// Exceptions. See /LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// Utilities for converting between `absl::string_view` and `llvm::StringRef`.
//
// These are needed for platforms where `absl::string_view` is not an alias for
// `std::string_view`.
#ifndef THIRD_PARTY_CRUBIT_COMMON_STRING_VIEW_CONVERSION_H_
#define THIRD_PARTY_CRUBIT_COMMON_STRING_VIEW_CONVERSION_H_
#include "absl/strings/string_view.h"
#include "llvm/ADT/StringRef.h"
// Converts an `absl::string_view` to a `llvm::StringRef`.
inline llvm::StringRef StringRefFromStringView(absl::string_view str) {
return llvm::StringRef(str.data(), str.size());
}
// Converts a `llvm::StringRef` to an `absl::string_view`.
inline absl::string_view StringViewFromStringRef(llvm::StringRef str) {
// Avoid passing a null pointer to the `string_view` constructor (which
// isn't legal if `absl::string_view` is an alias for `std::string_view`).
if (str.empty()) {
return absl::string_view();
}
return absl::string_view(str.data(), str.size());
}
#endif // THIRD_PARTY_CRUBIT_COMMON_STRING_VIEW_CONVERSION_H_