simdjson  3.11.0
Ridiculously Fast JSON
tape_ref.h
1 #ifndef SIMDJSON_INTERNAL_TAPE_REF_H
2 #define SIMDJSON_INTERNAL_TAPE_REF_H
3 
4 #include "simdjson/base.h"
5 
6 namespace simdjson {
7 namespace dom {
8 class document;
9 } // namespace dom
10 
11 namespace internal {
12 
16 class tape_ref {
17 public:
18  simdjson_inline tape_ref() noexcept;
19  simdjson_inline tape_ref(const dom::document *doc, size_t json_index) noexcept;
20  inline size_t after_element() const noexcept;
21  simdjson_inline tape_type tape_ref_type() const noexcept;
22  simdjson_inline uint64_t tape_value() const noexcept;
23  simdjson_inline bool is_double() const noexcept;
24  simdjson_inline bool is_int64() const noexcept;
25  simdjson_inline bool is_uint64() const noexcept;
26  simdjson_inline bool is_false() const noexcept;
27  simdjson_inline bool is_true() const noexcept;
28  simdjson_inline bool is_null_on_tape() const noexcept;// different name to avoid clash with is_null.
29  simdjson_inline uint32_t matching_brace_index() const noexcept;
30  simdjson_inline uint32_t scope_count() const noexcept;
31  template<typename T>
32  simdjson_inline T next_tape_value() const noexcept;
33  simdjson_inline uint32_t get_string_length() const noexcept;
34  simdjson_inline const char * get_c_str() const noexcept;
35  inline std::string_view get_string_view() const noexcept;
36  simdjson_inline bool is_document_root() const noexcept;
37  simdjson_inline bool usable() const noexcept;
38 
40  const dom::document *doc;
41 
43  size_t json_index;
44 };
45 
46 } // namespace internal
47 } // namespace simdjson
48 
49 #endif // SIMDJSON_INTERNAL_TAPE_REF_H
The top level simdjson namespace, containing everything the library provides.
Definition: base.h:8