cheatah
Class

parsers::json::Object

A JSON object token, templated on its backing storage S: Object<std::vector<Member>> (OwnedObject) owns its members, Object<std::span<const Member>> (ObjectView) views members in a Parser's pool with no copy.

Move-only; both backings read uniformly via value().

Template parameters
S

the member storage: std::vector<Member> (owning) or std::span<const Member> (viewing).

Functions

fn Object · 3 overloads
Object(S value)source#
Object(const Object &)=deletesource#
Object(Object &&other) noexcept=defaultsource#

Construct from the backing storage (moved in).

Parameters
value

the member storage (an owning vector or a non-owning span).

Complexity

O(1) — a vector move or a span copy; the members are never copied.

Allocation

none.

fn ~Object()=default source#
fn operator= · 2 overloads
Object & operator=(const Object &)=deletesource#
Object & operator=(Object &&other) noexcept=defaultsource#

Move-assign, taking over the other object's storage.

Parameters
other

the object to move from.

Returns

reference to this object.

fn std::span< const Member > value() const noexcept source#

Read the members uniformly as a view, whether owned or viewed (no setter).

Returns

a std::span<const Member> over the object's key/value members.

Complexity

O(1).

Allocation

none.

Constants & variables

var S value_ source#