simdjson  3.1.3
Ridiculously Fast JSON
padded_string_view-inl.h
1 #ifndef SIMDJSON_PADDED_STRING_VIEW_INL_H
2 #define SIMDJSON_PADDED_STRING_VIEW_INL_H
3 
4 #include "simdjson/portability.h"
5 #include "simdjson/common_defs.h" // for SIMDJSON_PADDING
6 
7 #include <climits>
8 #include <cstring>
9 #include <memory>
10 #include <string>
11 
12 namespace simdjson {
13 
14 inline padded_string_view::padded_string_view(const char* s, size_t len, size_t capacity) noexcept
15  : std::string_view(s, len), _capacity(capacity)
16 {
17 }
18 
19 inline padded_string_view::padded_string_view(const uint8_t* s, size_t len, size_t capacity) noexcept
20  : padded_string_view(reinterpret_cast<const char*>(s), len, capacity)
21 {
22 }
23 
24 inline padded_string_view::padded_string_view(const std::string &s) noexcept
25  : std::string_view(s), _capacity(s.capacity())
26 {
27 }
28 
29 inline padded_string_view::padded_string_view(std::string_view s, size_t capacity) noexcept
30  : std::string_view(s), _capacity(capacity)
31 {
32 }
33 
34 inline size_t padded_string_view::capacity() const noexcept { return _capacity; }
35 
36 inline size_t padded_string_view::padding() const noexcept { return capacity() - length(); }
37 
38 } // namespace simdjson
39 
40 #endif // SIMDJSON_PADDED_STRING_VIEW_INL_H
User-provided string that promises it has extra padded bytes at the end for use with parser::parse().
size_t padding() const noexcept
The amount of padding on the string (capacity() - length())
size_t capacity() const noexcept
The number of allocated bytes.
padded_string_view() noexcept=default
Create an empty padded_string_view.
We want to support argument-dependent lookup (ADL).