MNX Document Model
Loading...
Searching...
No Matches
mnx::SimpleType< T, > Class Template Reference

Allows access to a fundamental type (number, boolean, string) in a JSON node. More...

#include <BaseTypes.h>

+ Inheritance diagram for mnx::SimpleType< T, >:

Public Types

using value_type = T
 value type of this SimpleType
 

Public Member Functions

 SimpleType (const std::shared_ptr< json > &root, json_pointer pointer)
 Wraps a SimpleType class around an existing JSON object node.
 
 operator T () const
 Convert to simple type.
 
SimpleTypeoperator= (const T &src)
 Allow assignment to underlying json reference.
 
bool operator== (const T &src) const
 Equality comparison with value type.
 
- Public Member Functions inherited from mnx::Base
 Base (const Base &src)
 Copy constructor.
 
 Base (Base &&src) noexcept
 Move constructor.
 
Baseoperator= (const Base &src)
 Copy assignment operator.
 
Baseoperator= (Base &&src)
 Move assignment operator.
 
std::string dump (int indents=-1)
 Dumps the branch to a string. Useful in debugging.
 
template<typename T >
parent () const
 Returns the parent object for this node.
 
template<typename T >
std::optional< T > getEnclosingElement () const
 Returns the enclosing array element for this instance.
 
json_pointer pointer () const
 Returns the json_pointer for this node.
 

Additional Inherited Members

- Protected Member Functions inherited from mnx::Base
jsonref () const
 Convert this node for retrieval.
 
jsonref ()
 Access the JSON node for modification.
 
const std::shared_ptr< json > & root () const
 Returns the root.
 
 Base (const std::shared_ptr< json > &root, json_pointer pointer)
 Wrap a Base instance around a specific JSON reference using a json_pointer.
 
 Base (json &&jsonRef, Base &parent, const std::string_view &key)
 Construct a Base reference as a child inside a parent node.
 
template<typename T >
getChild (const std::string_view &key) const
 Retrieves and validates a required child node.
 
template<typename T >
setChild (const std::string_view &key, const T &value)
 Sets a child node.
 
template<typename T >
std::optional< T > getOptionalChild (const std::string_view &key) const
 Retrieves an optional child node.
 

Detailed Description

template<typename T, std::enable_if_t<!std::is_base_of_v< Base, T >, int > = 0>
class mnx::SimpleType< T, >

Allows access to a fundamental type (number, boolean, string) in a JSON node.

Template Parameters
TThe fundamental type to wrap.

Constructor & Destructor Documentation

◆ SimpleType()

template<typename T , std::enable_if_t<!std::is_base_of_v< Base, T >, int > = 0>
mnx::SimpleType< T, >::SimpleType ( const std::shared_ptr< json > &  root,
json_pointer  pointer 
)
inline

Wraps a SimpleType class around an existing JSON object node.

Parameters
rootReference to the document root
pointerThe json_pointer value for the node

Member Function Documentation

◆ operator=()

template<typename T , std::enable_if_t<!std::is_base_of_v< Base, T >, int > = 0>
SimpleType & mnx::SimpleType< T, >::operator= ( const T &  src)
inline

Allow assignment to underlying json reference.

Parameters
srcThe simple type to assign.