Small overhaul using string_view
This commit is contained in:
@@ -59,6 +59,10 @@ const char *StreamBuffer::data() const {
|
||||
return read_cursor_;
|
||||
}
|
||||
|
||||
std::string_view StreamBuffer::view() const {
|
||||
return std::string_view(read_cursor_, write_cursor_ - read_cursor_);
|
||||
}
|
||||
|
||||
bool StreamBuffer::layout_is(int64_t a, int64_t b, int64_t c) {
|
||||
if (read_cursor_ - buf_lo_ != a) return false;
|
||||
if (write_cursor_ - read_cursor_ != b) return false;
|
||||
@@ -182,8 +186,10 @@ void StreamBuffer::write_bytes(const char *s, int64_t len) {
|
||||
write_cursor_ += len;
|
||||
}
|
||||
|
||||
void StreamBuffer::write_bytes(const eng::string &s) {
|
||||
write_bytes(s.c_str(), s.size());
|
||||
void StreamBuffer::write_bytes(std::string_view s) {
|
||||
make_space(s.size());
|
||||
memcpy(write_cursor_, s.data(), s.size());
|
||||
write_cursor_ += s.size();
|
||||
}
|
||||
|
||||
const char *StreamBuffer::read_bytes(int64_t bytes) {
|
||||
@@ -322,14 +328,14 @@ void StreamBuffer::write_hashvalue(const util::HashValue &hv) {
|
||||
write_uint64(hv.second);
|
||||
}
|
||||
|
||||
void StreamBuffer::write_string(const eng::string &s) {
|
||||
void StreamBuffer::write_string(std::string_view s) {
|
||||
if (s.size() >= 255) {
|
||||
write_uint8(0xFF);
|
||||
write_uint64(s.size());
|
||||
write_bytes(s.c_str(), s.size());
|
||||
write_bytes(s);
|
||||
} else {
|
||||
write_uint8(s.size());
|
||||
write_bytes(s.c_str(), s.size());
|
||||
write_bytes(s);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user