19 assert(begin_ && end_);
20 assert((end_ - begin_) >= 0);
39 int Compare(
const char *b)
const;
74 static bool is_space(
char c)
78 return (c ==
' ') || (c ==
'\t') || (c ==
'\v') || (c ==
'\r') || (c ==
'\n');
91 const char *a =
begin;
92 while (a !=
end && *b && *a == *b) {
97 return (*a < *b ? -1 : 1);
111 while ((x != y) && (*x != c))
119 while ((x != y) && (*--y != c)) {
127 while ((x != y) && !isspace(*x))
135 while ((x != y) && !isspace(*--y)) {
143 while ((x != y) && (*x !=
'\r') && (*x !=
'\n'))
151 if ((x != y) && (*x ==
'\r')) ++x;
152 if ((x != y) && (*x ==
'\n')) ++x;
159 while ((x != y) && is_space(*x))
167 while ((x != y) && is_space(*--y)) {
169 return (y ==
end ? y : y + 1);
Definition StringRange.h:11
friend bool operator<(const StringRange &a, const char *b)
Definition StringRange.h:45
const char * RFindChar(char c) const
Definition StringRange.h:116
const char * RFindSpace() const
Definition StringRange.h:132
friend bool operator<=(const char *a, const StringRange &b)
Definition StringRange.h:50
StringRange(const char *begin_, size_t size)
Definition StringRange.h:22
const char * FindNextLine() const
Definition StringRange.h:148
size_t Size() const
Definition StringRange.h:33
friend bool operator>(const StringRange &a, const char *b)
Definition StringRange.h:46
friend bool operator<(const char *a, const StringRange &b)
Definition StringRange.h:52
friend bool operator==(const StringRange &a, const char *b)
Definition StringRange.h:41
friend bool operator!=(const char *a, const StringRange &b)
Definition StringRange.h:49
const char * FindNewline() const
Definition StringRange.h:140
const char & operator*() const
Definition StringRange.h:36
const char * end
Definition StringRange.h:30
StringRange ReadLine()
Definition StringRange.h:82
const char * begin
Definition StringRange.h:29
const char * RFindNonSpace() const
Definition StringRange.h:164
const char & operator[](size_t idx) const
Definition StringRange.h:35
const char * FindNonSpace() const
Definition StringRange.h:156
friend bool operator>=(const StringRange &a, const char *b)
Definition StringRange.h:44
const char * FindChar(char c) const
Definition StringRange.h:108
friend bool operator>=(const char *a, const StringRange &b)
Definition StringRange.h:51
StringRange StripUTF8BOM() const
Definition StringRange.h:172
std::string ToString() const
Definition StringRange.h:37
StringRange(const char *begin_, const char *end_)
Definition StringRange.h:15
friend bool operator>(const char *a, const StringRange &b)
Definition StringRange.h:53
friend bool operator!=(const StringRange &a, const char *b)
Definition StringRange.h:42
StringRange()
Definition StringRange.h:12
int Compare(const char *b) const
Definition StringRange.h:89
const char * FindSpace() const
Definition StringRange.h:124
bool Empty() const
Definition StringRange.h:32
friend bool operator==(const char *a, const StringRange &b)
Definition StringRange.h:48
StringRange StripSpace() const
Definition StringRange.h:180
friend bool operator<=(const StringRange &a, const char *b)
Definition StringRange.h:43