#ifndef LLVM_ADT_STRINGREF_H
#define LLVM_ADT_STRINGREF_H
#include "llvm/ADT/DenseMapInfo.h"
#include "llvm/ADT/STLFunctionalExtras.h"
#include "llvm/ADT/iterator_range.h"
#include "llvm/Support/Compiler.h"
#include <algorithm>
#include <cassert>
#include <cstddef>
#include <cstring>
#include <iterator>
#include <limits>
#include <string>
#include <string_view>
#include <type_traits>
#include <utility>
namespace llvm {
class APInt;
class hash_code;
template <typename T> class SmallVectorImpl;
class StringRef;
bool getAsUnsignedInteger(StringRef Str, unsigned Radix,
unsigned long long &Result);
bool getAsSignedInteger(StringRef Str, unsigned Radix, long long &Result);
bool consumeUnsignedInteger(StringRef &Str, unsigned Radix,
unsigned long long &Result);
bool consumeSignedInteger(StringRef &Str, unsigned Radix, long long &Result);
class LLVM_GSL_POINTER StringRef { … };
class StringLiteral : public StringRef { … };
inline bool operator==(StringRef LHS, StringRef RHS) { … }
inline bool operator!=(StringRef LHS, StringRef RHS) { … }
inline bool operator<(StringRef LHS, StringRef RHS) { … }
inline bool operator<=(StringRef LHS, StringRef RHS) { … }
inline bool operator>(StringRef LHS, StringRef RHS) { … }
inline bool operator>=(StringRef LHS, StringRef RHS) { … }
inline std::string &operator+=(std::string &buffer, StringRef string) { … }
[[nodiscard]] hash_code hash_value(StringRef S);
template <> struct DenseMapInfo<StringRef, void> { … };
}
#endif