StormByte C++ Library: Config module 1.0.1.9999
StormByte-Config is the configuration module of the StormByte C++ suite.
Loading...
Searching...
No Matches
List of all members
StormByte::Config::Item::Group Class Reference

Named container { … } that can hold items, subgroups and lists. More...

#include <group.hxx>

Inheritance diagram for StormByte::Config::Item::Group:
Inheritance graph
[legend]
Collaboration diagram for StormByte::Config::Item::Group:
Collaboration graph
[legend]

Public Member Functions

Construction
 Group ()=default
 Constructs an empty Group.
 
 Group (const std::string &name)
 Constructs a Group with the given name.
 
 Group (std::string &&name)
 Constructs a Group with the given name (move).
 
 Group (const Group &group)=default
 Copy constructor.
 
 Group (Group &&group) noexcept=default
 Move constructor.
 
Groupoperator= (const Group &group)=default
 Copy assignment operator.
 
Groupoperator= (Group &&group) noexcept=default
 Move assignment operator.
 
 ~Group () noexcept override=default
 Destructor.
 
Access
PointerType Clone () const override
 Clones the group.
 
PointerType Move () override
 Moves the group.
 
constexpr Item::ContainerType ContainerType () const noexcept override
 Gets the container type.
 
- Public Member Functions inherited from StormByte::Config::Item::Container
 Container ()=default
 Constructs an empty Container.
 
 Container (const std::string &name)
 Constructs a Container with the given name.
 
 Container (std::string &&name)
 Constructs a Container with the given name (move).
 
 Container (const Container &base)=default
 Copy constructor.
 
 Container (Container &&base) noexcept=default
 Move constructor.
 
Containeroperator= (const Container &base)=default
 Copy assignment operator.
 
Containeroperator= (Container &&base) noexcept=default
 Move assignment operator.
 
virtual ~Container () noexcept override=default
 Destructor.
 
BaseAdd (const Base &item, const StormByte::Config::OnExistingAction &on_existing)
 Adds an item (const reference) using an explicit policy.
 
BaseAdd (Base &&item, const StormByte::Config::OnExistingAction &on_existing)
 Adds an item (rvalue) using an explicit policy.
 
BaseAdd (const Base &item)
 Adds an item using the container's current OnExistingAction policy.
 
BaseAdd (Base &&item)
 Adds an item using the container's current OnExistingAction policy (move).
 
BaseAdd (Base::PointerType item, const StormByte::Config::OnExistingAction &on_existing)
 Adds an item to the container.
 
void Clear () noexcept
 Clears all items from the container.
 
bool Exists (const std::string &path) const
 Checks if an item exists by path.
 
void Remove (const size_t &index)
 Removes an item by index.
 
void Remove (const std::string &path)
 Removes an item by path.
 
constexpr std::span< Base::PointerType > Items () noexcept
 Returns a span of all items in the container.
 
constexpr std::span< const Base::PointerType > Items () const noexcept
 Returns a const span of all items in the container.
 
constexpr size_t Size () const noexcept
 Gets the number of items in the current level.
 
size_t Count () const noexcept
 Gets the total number of items including nested ones.
 
void SetOnExistingAction (StormByte::Config::OnExistingAction action) noexcept
 Sets the action to take when an item with the same identity already exists.
 
StormByte::Config::OnExistingAction GetOnExistingAction () const noexcept
 Gets the current OnExistingAction policy.
 
bool Equals (const Base &other) const noexcept override
 Polymorphic equality comparison.
 
Baseoperator[] (const size_t &index)
 Gets a reference to an item by index.
 
const Baseoperator[] (const size_t &index) const
 Gets a const reference to an item by index.
 
Baseoperator[] (const std::string &path)
 Gets a reference to an item by path.
 
const Baseoperator[] (const std::string &path) const
 Gets a const reference to an item by path.
 
bool operator== (const Container &container) const noexcept
 Equality operator.
 
bool operator!= (const Container &container) const noexcept
 Inequality operator.
 
std::string Serialize (const int &indent_level) const noexcept override
 Serializes the container to a string.
 
constexpr std::string ContainerTypeToString () const noexcept
 Gets the container type as string.
 
constexpr Item::Type Type () const noexcept override
 Gets the item type.
 
- Public Member Functions inherited from StormByte::Config::Item::Base
 Base ()=default
 Default constructor.
 
 Base (const std::string &name)
 Constructs a Base item with a name.
 
 Base (const Base &base)=default
 Copy constructor.
 
 Base (Base &&base) noexcept=default
 Move constructor.
 
Baseoperator= (const Base &base)=default
 Copy assignment operator.
 
Baseoperator= (Base &&base) noexcept=default
 Move assignment operator.
 
virtual ~Base () noexcept=default
 Destructor.
 
bool operator== (const Base &other) const noexcept
 Equality operator.
 
bool operator!= (const Base &other) const noexcept
 Inequality operator.
 
constexpr const std::optional< std::string > & Name () const noexcept
 Gets the name of the item.
 
constexpr void Name (const std::string &name) noexcept
 Sets the item name.
 
bool IsNameValid () const noexcept
 Checks if the current name is valid.
 
virtual std::optional< CommentTypeGetCommentType () const noexcept
 Returns the comment type if this item is a Comment, otherwise std::nullopt.
 
constexpr std::string TypeToString () const noexcept
 Gets the item type as a string.
 
 operator std::string () const
 Converts the item to a string.
 
template<typename T >
const T & Value () const
 Gets the item value (const).
 
template<typename T >
T & Value ()
 Gets the item value (mutable).
 

Additional Inherited Members

- Static Public Member Functions inherited from StormByte::Config::Item::Container
static constexpr std::pair< const char, const char > EnclosureCharacters (const ContainerType &type) noexcept
 Returns the enclosure characters for a given container type.
 
static constexpr const char EndCharacter (const ContainerType &type) noexcept
 Returns the closing character for a given container type.
 
- Protected Attributes inherited from StormByte::Config::Item::Container
std::vector< Base::PointerType > m_items
 Items stored in the container.
 
StormByte::Config::OnExistingAction m_on_existing_action = StormByte::Config::OnExistingAction::ThrowException
 Collision policy.
 
- Protected Attributes inherited from StormByte::Config::Item::Base
std::optional< std::string > m_name
 Item name.
 

Detailed Description

Named container { … } that can hold items, subgroups and lists.

settings = {
username = "StormByte"
credit = 66.5
}

Constructor & Destructor Documentation

◆ Group() [1/4]

StormByte::Config::Item::Group::Group ( const std::string &  name)

Constructs a Group with the given name.

Parameters
nameThe name of the group.

◆ Group() [2/4]

StormByte::Config::Item::Group::Group ( std::string &&  name)

Constructs a Group with the given name (move).

Parameters
nameThe name of the group.

◆ Group() [3/4]

StormByte::Config::Item::Group::Group ( const Group group)
default

Copy constructor.

Parameters
groupGroup to copy.

◆ Group() [4/4]

StormByte::Config::Item::Group::Group ( Group &&  group)
defaultnoexcept

Move constructor.

Parameters
groupGroup to move.

Member Function Documentation

◆ Clone()

PointerType StormByte::Config::Item::Group::Clone ( ) const
inlineoverride

Clones the group.

Returns
Cloned group.

◆ ContainerType()

constexpr Item::ContainerType StormByte::Config::Item::Group::ContainerType ( ) const
inlineconstexproverridevirtualnoexcept

Gets the container type.

Returns
Container type.

Implements StormByte::Config::Item::Container.

◆ Move()

PointerType StormByte::Config::Item::Group::Move ( )
inlineoverride

Moves the group.

Returns
Moved group.

◆ operator=() [1/2]

Group & StormByte::Config::Item::Group::operator= ( const Group group)
default

Copy assignment operator.

Parameters
groupGroup to copy.
Returns
Reference to this Group.

◆ operator=() [2/2]

Group & StormByte::Config::Item::Group::operator= ( Group &&  group)
defaultnoexcept

Move assignment operator.

Parameters
groupGroup to move.
Returns
Reference to this Group.

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