di 0.1.0
Loading...
Searching...
No Matches
di::serialization::json::Value Class Reference

#include <di/serialization/json_value.h>

Inheritance diagram for di::serialization::json::Value:
di::vocab::Variant< Null, Bool, Number, String, Array, Object > di::util::AddMemberGet< Variant< Types... > >

Public Member Functions

constexpr auto is_null () const -> bool
constexpr auto is_boolean () const -> bool
constexpr auto is_integer () const -> bool
constexpr auto is_number () const -> bool
constexpr auto is_string () const -> bool
constexpr auto is_array () const -> bool
constexpr auto is_object () const -> bool
constexpr auto as_boolean () const -> vocab::Optional< Bool >
constexpr auto is_true () const -> bool
constexpr auto is_false () const -> bool
constexpr auto as_integer () const -> vocab::Optional< Number >
constexpr auto as_number () const -> vocab::Optional< Number >
constexpr auto as_string () -> vocab::Optional< String & >
constexpr auto as_string () const -> vocab::Optional< String const & >
constexpr auto as_array () -> vocab::Optional< Array & >
constexpr auto as_array () const -> vocab::Optional< Array const & >
constexpr auto as_object () -> vocab::Optional< Object & >
constexpr auto as_object () const -> vocab::Optional< Object const & >
constexpr auto operator[] (String const &key) -> decltype(auto)
constexpr auto operator[] (String &&key) -> decltype(auto)
template<typename U>
requires (requires { util::declval<Object&>()[util::declval<U>()]; })
constexpr auto operator[] (U &&key) -> decltype(auto)
constexpr auto at (String const &key) -> Optional< Value & >
constexpr auto at (String const &key) const -> Optional< Value const & >
template<typename U>
requires (requires { util::declval<Object&>().at(util::declval<U&>()); })
constexpr auto at (U &&key) -> Optional< Value & >
template<typename U>
requires (requires { util::declval<Object const&>().at(util::declval<U&>()); })
constexpr auto at (U &&key) const -> Optional< Value const & >
constexpr auto contains (String const &key) const -> bool
template<typename U>
constexpr auto contains (U &&key) const -> bool
constexpr auto erase (String const &key) -> size_t
template<typename U>
requires (requires { util::declval<Object&>().erase(util::declval<U&>()); })
constexpr auto erase (U &&key) -> size_t
template<typename... Args>
requires (concepts::ConstructibleFrom<Value, Args...>)
constexpr auto try_emplace (String const &key, Args &&... args) -> decltype(auto)
template<typename... Args>
requires (concepts::ConstructibleFrom<Value, Args...>)
constexpr auto try_emplace (String &&key, Args &&... args) -> decltype(auto)
template<typename U, typename... Args>
requires (concepts::ConstructibleFrom<Value, Args...> && requires { util::declval<Object&>().try_emplace(util::declval<U>(), util::declval<Args>()...); })
constexpr auto try_emplace (U &&key, Args &&... args) -> decltype(auto)
template<typename V>
requires (concepts::ConstructibleFrom<Value, V>)
constexpr auto insert_or_assign (String const &key, V &&value) -> decltype(auto)
template<typename V>
requires (concepts::ConstructibleFrom<Value, V>)
constexpr auto insert_or_assign (String &&key, V &&value) -> decltype(auto)
template<typename U, typename V>
requires (concepts::ConstructibleFrom<Value, V> && requires { util::declval<Object&>().insert_or_assign(util::declval<U>(), util::declval<Value>()); })
constexpr auto insert_or_assign (U &&key, V &&value) -> decltype(auto)
constexpr auto empty () const -> bool
constexpr auto size () const -> usize
constexpr void clear ()
constexpr auto front () -> Optional< Value & >
constexpr auto front () const -> Optional< Value const & >
constexpr auto back () -> Optional< Value & >
constexpr auto back () const -> Optional< Value const & >
constexpr auto operator[] (usize index) -> Value &
constexpr auto operator[] (usize index) const -> Value const &
constexpr auto at (usize index) -> Optional< Value & >
constexpr auto at (usize index) const -> Optional< Value const & >
constexpr auto push_back (Value &&value) -> decltype(auto)
constexpr auto pop_back () -> Optional< Value >
auto operator= (Variant const &) -> Variant &requires(trivially_copy_assignable)=default
auto operator= (Variant &&) -> Variant &requires(trivially_move_assignable)=default
constexpr auto operator= (Variant const &other) -> Variant &requires(!trivially_copy_assignable &&copyable)
constexpr auto operator= (Variant &&other) -> Variant &requires(!trivially_move_assignable &&movable)
constexpr auto operator= (U &&value) -> Variant &
Public Member Functions inherited from di::vocab::Variant< Null, Bool, Number, String, Array, Object >
 Variant (Variant const &)=default
 Variant (Variant &&)=default
 ~Variant ()=default
auto operator= (Variant const &) -> Variant &requires(trivially_copy_assignable)=default
auto operator= (Variant &&) -> Variant &requires(trivially_move_assignable)=default
constexpr Variant ()
constexpr Variant (Variant const &other)
constexpr Variant (Variant &&other)
constexpr Variant (U &&value)
constexpr Variant (Constexpr< index >, Args &&... args)
constexpr Variant (Constexpr< index >, std::initializer_list< U > list, Args &&... args)
constexpr Variant (InPlaceType< T >, Args &&... args)
constexpr Variant (InPlaceType< T >, std::initializer_list< U > list, Args &&... args)
constexpr explicit ((!concepts::ConvertibleTo< Other const &, Types >||...)) Variant(Variant< Other... > const &other)
constexpr explicit ((!concepts::ConvertibleTo< Other, Types >||...)) Variant(Variant< Other... > &&other)
constexpr ~Variant ()
constexpr auto operator= (Variant const &other) -> Variant &requires(!trivially_copy_assignable &&copyable)
constexpr auto operator= (Variant &&other) -> Variant &requires(!trivially_move_assignable &&movable)
constexpr auto operator= (U &&value) -> Variant &
constexpr auto index () const -> size_t
constexpr auto emplace (Args &&... args) -> T &
constexpr auto emplace (std::initializer_list< U > list, Args &&... args) -> T &
constexpr auto emplace (Args &&... args) -> T &
constexpr auto emplace (std::initializer_list< U > list, Args &&... args) -> T &
 Variant (Variant const &)=default
 Variant (Variant &&)=default
constexpr Variant ()
constexpr Variant (Variant const &other)
constexpr Variant (Variant &&other)
constexpr Variant (U &&value)
constexpr Variant (Constexpr< index >, Args &&... args)
constexpr Variant (Constexpr< index >, std::initializer_list< U > list, Args &&... args)
constexpr Variant (InPlaceType< T >, Args &&... args)
constexpr Variant (InPlaceType< T >, std::initializer_list< U > list, Args &&... args)
 ~Variant ()=default
constexpr ~Variant ()
auto operator= (Variant const &) -> Variant &requires(trivially_copy_assignable)=default
auto operator= (Variant &&) -> Variant &requires(trivially_move_assignable)=default
constexpr auto operator= (Variant const &other) -> Variant &requires(!trivially_copy_assignable &&copyable)
constexpr auto operator= (Variant &&other) -> Variant &requires(!trivially_move_assignable &&movable)
constexpr auto operator= (U &&value) -> Variant &
constexpr explicit ((!concepts::ConvertibleTo< Other const &, Types >||...)) Variant(Variant< Other... > const &other)
constexpr explicit ((!concepts::ConvertibleTo< Other, Types >||...)) Variant(Variant< Other... > &&other)
constexpr auto index () const -> size_t
constexpr auto emplace (Args &&... args) -> T &
constexpr auto emplace (std::initializer_list< U > list, Args &&... args) -> T &
constexpr auto emplace (Args &&... args) -> T &
constexpr auto emplace (std::initializer_list< U > list, Args &&... args) -> T &
Public Member Functions inherited from di::util::AddMemberGet< Variant< Types... > >
constexpr auto get () &-> decltype(auto)

Friends

template<concepts::SameAs< types::Tag< util::create_in_place > > Tag = types::Tag<util::create_in_place>, typename... Args>
requires (concepts::CreatableFrom<String, Args...>)
constexpr friend auto tag_invoke (Tag, InPlaceType< Value >, Args &&... args)
template<typename S>
constexpr friend auto tag_invoke (types::Tag< serialize >, JsonFormat, S &serializer, Value const &value) -> meta::SerializeResult< S >
constexpr friend auto tag_invoke (types::Tag< serializable >, JsonFormat, InPlaceType< Value >) -> bool
template<concepts::Encoding Enc, concepts::SameAs< InPlaceType< Value > > X = InPlaceType<Value>, concepts::SameAs< bool > B = bool, concepts::SameAs< types::Tag< fmt::formatter_in_place > > Tag = types::Tag<fmt::formatter_in_place>>
constexpr friend auto tag_invoke (Tag, X, fmt::FormatParseContext< Enc > &parse_context, B debug)
constexpr friend auto operator== (Value const &a, container::StringView view) -> bool
constexpr friend auto operator<=> (Value const &a, container::StringView view)

Member Function Documentation

◆ as_array() [1/2]

auto di::serialization::json::Value::as_array ( ) ->vocab::Optional< Array & >
inlineconstexpr

◆ as_array() [2/2]

auto di::serialization::json::Value::as_array ( ) const->vocab::Optional< Arrayconst & >
inlineconstexpr

◆ as_boolean()

auto di::serialization::json::Value::as_boolean ( ) const->vocab::Optional< Bool >
inlineconstexpr

◆ as_integer()

auto di::serialization::json::Value::as_integer ( ) const->vocab::Optional< Number >
inlineconstexpr

◆ as_number()

auto di::serialization::json::Value::as_number ( ) const->vocab::Optional< Number >
inlineconstexpr

◆ as_object() [1/2]

auto di::serialization::json::Value::as_object ( ) ->vocab::Optional< Object & >
inlineconstexpr

◆ as_object() [2/2]

auto di::serialization::json::Value::as_object ( ) const->vocab::Optional< Objectconst & >
inlineconstexpr

◆ as_string() [1/2]

auto di::serialization::json::Value::as_string ( ) ->vocab::Optional< String & >
inlineconstexpr

◆ as_string() [2/2]

auto di::serialization::json::Value::as_string ( ) const->vocab::Optional< Stringconst & >
inlineconstexpr

◆ at() [1/6]

auto di::serialization::json::Value::at ( String const & key) ->Optional< Value & >
inlineconstexpr

◆ at() [2/6]

auto di::serialization::json::Value::at ( String const & key) const->Optional< Valueconst & >
inlineconstexpr

◆ at() [3/6]

template<typename U>
requires (requires { util::declval<Object&>().at(util::declval<U&>()); })
auto di::serialization::json::Value::at ( U && key) ->Optional< Value & >
inlineconstexpr

◆ at() [4/6]

template<typename U>
requires (requires { util::declval<Object const&>().at(util::declval<U&>()); })
auto di::serialization::json::Value::at ( U && key) const->Optional< Valueconst & >
inlineconstexpr

◆ at() [5/6]

auto di::serialization::json::Value::at ( usize index) ->Optional< Value & >
inlineconstexpr

◆ at() [6/6]

auto di::serialization::json::Value::at ( usize index) const->Optional< Valueconst & >
inlineconstexpr

◆ back() [1/2]

auto di::serialization::json::Value::back ( ) ->Optional< Value & >
inlineconstexpr

◆ back() [2/2]

auto di::serialization::json::Value::back ( ) const->Optional< Valueconst & >
inlineconstexpr

◆ clear()

void di::serialization::json::Value::clear ( )
inlineconstexpr

◆ contains() [1/2]

auto di::serialization::json::Value::contains ( String const & key) const->bool
inlineconstexpr

◆ contains() [2/2]

template<typename U>
auto di::serialization::json::Value::contains ( U && key) const->bool
inlineconstexpr

◆ empty()

auto di::serialization::json::Value::empty ( ) const->bool
inlineconstexpr

◆ erase() [1/2]

auto di::serialization::json::Value::erase ( String const & key) ->size_t
inlineconstexpr

◆ erase() [2/2]

template<typename U>
requires (requires { util::declval<Object&>().erase(util::declval<U&>()); })
auto di::serialization::json::Value::erase ( U && key) ->size_t
inlineconstexpr

◆ front() [1/2]

auto di::serialization::json::Value::front ( ) ->Optional< Value & >
inlineconstexpr

◆ front() [2/2]

auto di::serialization::json::Value::front ( ) const->Optional< Valueconst & >
inlineconstexpr

◆ insert_or_assign() [1/3]

template<typename V>
requires (concepts::ConstructibleFrom<Value, V>)
auto di::serialization::json::Value::insert_or_assign ( String && key,
V && value )->decltype(auto)
inlineconstexpr

◆ insert_or_assign() [2/3]

template<typename V>
requires (concepts::ConstructibleFrom<Value, V>)
auto di::serialization::json::Value::insert_or_assign ( String const & key,
V && value )->decltype(auto)
inlineconstexpr

◆ insert_or_assign() [3/3]

template<typename U, typename V>
requires (concepts::ConstructibleFrom<Value, V> && requires { util::declval<Object&>().insert_or_assign(util::declval<U>(), util::declval<Value>()); })
auto di::serialization::json::Value::insert_or_assign ( U && key,
V && value )->decltype(auto)
inlineconstexpr

◆ is_array()

auto di::serialization::json::Value::is_array ( ) const->bool
inlineconstexpr

◆ is_boolean()

auto di::serialization::json::Value::is_boolean ( ) const->bool
inlineconstexpr

◆ is_false()

auto di::serialization::json::Value::is_false ( ) const->bool
inlineconstexpr

◆ is_integer()

auto di::serialization::json::Value::is_integer ( ) const->bool
inlineconstexpr

◆ is_null()

auto di::serialization::json::Value::is_null ( ) const->bool
inlineconstexpr

◆ is_number()

auto di::serialization::json::Value::is_number ( ) const->bool
inlineconstexpr

◆ is_object()

auto di::serialization::json::Value::is_object ( ) const->bool
inlineconstexpr

◆ is_string()

auto di::serialization::json::Value::is_string ( ) const->bool
inlineconstexpr

◆ is_true()

auto di::serialization::json::Value::is_true ( ) const->bool
inlineconstexpr

◆ operator=() [1/5]

auto di::vocab::Variant< Types >::operator= ( U && value) ->Variant &
inlineconstexpr

◆ operator=() [2/5]

auto di::vocab::Variant< Types >::operator= ( Variant && ) ->Variant &requires(trivially_move_assignable)
default

◆ operator=() [3/5]

auto di::vocab::Variant< Types >::operator= ( Variant && other) ->Variant &requires(!trivially_move_assignable &&movable)
inlineconstexpr

◆ operator=() [4/5]

auto di::vocab::Variant< Types >::operator= ( Variant const & ) ->Variant &requires(trivially_copy_assignable)
default

◆ operator=() [5/5]

auto di::vocab::Variant< Types >::operator= ( Variant const & other) ->Variant &requires(!trivially_copy_assignable &&copyable)
inlineconstexpr

◆ operator[]() [1/5]

auto di::serialization::json::Value::operator[] ( String && key) ->decltype(auto)
inlineconstexpr

◆ operator[]() [2/5]

auto di::serialization::json::Value::operator[] ( String const & key) ->decltype(auto)
inlineconstexpr

◆ operator[]() [3/5]

template<typename U>
requires (requires { util::declval<Object&>()[util::declval<U>()]; })
auto di::serialization::json::Value::operator[] ( U && key) ->decltype(auto)
inlineconstexpr

◆ operator[]() [4/5]

auto di::serialization::json::Value::operator[] ( usize index) ->Value &
inlineconstexpr

◆ operator[]() [5/5]

auto di::serialization::json::Value::operator[] ( usize index) const->Valueconst &
inlineconstexpr

◆ pop_back()

auto di::serialization::json::Value::pop_back ( ) ->Optional< Value >
inlineconstexpr

◆ push_back()

auto di::serialization::json::Value::push_back ( Value && value) ->decltype(auto)
inlineconstexpr

◆ size()

auto di::serialization::json::Value::size ( ) const->usize
inlineconstexpr

◆ try_emplace() [1/3]

template<typename... Args>
requires (concepts::ConstructibleFrom<Value, Args...>)
auto di::serialization::json::Value::try_emplace ( String && key,
Args &&... args )->decltype(auto)
inlineconstexpr

◆ try_emplace() [2/3]

template<typename... Args>
requires (concepts::ConstructibleFrom<Value, Args...>)
auto di::serialization::json::Value::try_emplace ( String const & key,
Args &&... args )->decltype(auto)
inlineconstexpr

◆ try_emplace() [3/3]

template<typename U, typename... Args>
requires (concepts::ConstructibleFrom<Value, Args...> && requires { util::declval<Object&>().try_emplace(util::declval<U>(), util::declval<Args>()...); })
auto di::serialization::json::Value::try_emplace ( U && key,
Args &&... args )->decltype(auto)
inlineconstexpr

◆ operator<=>

friend auto operator<=> ( Value const & a,
container::StringView view )
friend

◆ operator==

friend auto operator== ( Value const & a,
container::StringView view )->bool
friend

◆ tag_invoke [1/4]

template<concepts::SameAs< types::Tag< util::create_in_place > > Tag = types::Tag<util::create_in_place>, typename... Args>
requires (concepts::CreatableFrom<String, Args...>)
friend auto tag_invoke ( Tag ,
InPlaceType< Value > ,
Args &&... args )
friend

◆ tag_invoke [2/4]

template<concepts::Encoding Enc, concepts::SameAs< InPlaceType< Value > > X = InPlaceType<Value>, concepts::SameAs< bool > B = bool, concepts::SameAs< types::Tag< fmt::formatter_in_place > > Tag = types::Tag<fmt::formatter_in_place>>
friend auto tag_invoke ( Tag ,
X ,
fmt::FormatParseContext< Enc > & parse_context,
B debug )
friend

◆ tag_invoke [3/4]

friend auto tag_invoke ( types::Tag< serializable > ,
JsonFormat ,
InPlaceType< Value >  )->bool
friend

◆ tag_invoke [4/4]

template<typename S>
friend auto tag_invoke ( types::Tag< serialize > ,
JsonFormat ,
S & serializer,
Value const & value )->meta::SerializeResult< S >
friend

The documentation for this class was generated from the following file: