| 
    StormByte C++ Library: Config module 0.0.9999
    
   StormByte-Config is a StormByte library module for parsing configuration files 
   | 
 
Represents a container that can hold multiple configuration items. More...
#include <container.hxx>


Public Member Functions | |
| Container ()=default | |
| Constructs an empty Container.  | |
| Container (const std::string &name) | |
| Container (std::string &&name) | |
| Container (const Container &base)=default | |
| Container (Container &&base) noexcept=default | |
| Container & | operator= (const Container &base)=default | 
| Container & | operator= (Container &&base) noexcept=default | 
| virtual | ~Container () noexcept override=default | 
| Base & | operator[] (const size_t &index) | 
| const Base & | operator[] (const size_t &index) const | 
| Base & | operator[] (const std::string &path) | 
| const Base & | operator[] (const std::string &path) const | 
| bool | operator== (const Container &container) const noexcept | 
| bool | operator!= (const Container &container) const noexcept | 
| Base & | Add (const Base &item, const OnExistingAction &on_existing=OnExistingAction::ThrowException) | 
| Base & | Add (Base &&item, const OnExistingAction &on_existing=OnExistingAction::ThrowException) | 
| Base & | Add (Base::PointerType item, const OnExistingAction &on_existing) | 
| Adds an item to the container.   | |
| void | Clear () noexcept | 
| bool | Exists (const std::string &path) const | 
| void | Remove (const size_t &index) | 
| void | Remove (const std::string &path) | 
| std::string | Serialize (const int &indent_level) const noexcept override | 
| constexpr std::span< Base::PointerType > | Items () noexcept | 
| constexpr std::span< const Base::PointerType > | Items () const noexcept | 
| virtual constexpr Item::ContainerType | ContainerType () const noexcept=0 | 
| constexpr std::string | ContainerTypeToString () const noexcept | 
| constexpr Item::Type | Type () const noexcept override | 
| constexpr size_t | Size () const noexcept | 
| size_t | Count () const noexcept | 
  Public Member Functions inherited from StormByte::Config::Item::Base | |
| Base ()=default | |
| Constructs a Base item with an optional name.   | |
| Base (const std::string &name) | |
| Constructs a Base item with an optional name.   | |
| Base (const Base &base)=default | |
| Base (Base &&base) noexcept=default | |
| Base & | operator= (const Base &base)=default | 
| Base & | operator= (Base &&base) noexcept=default | 
| virtual | ~Base () noexcept=default | 
| bool | operator== (const Base &base) const noexcept | 
| bool | operator!= (const Base &base) const noexcept | 
| constexpr const std::optional< std::string > & | Name () const noexcept | 
| Gets the name of the item.   | |
| constexpr void | Name (const std::string &name) noexcept | 
| bool | IsNameValid () const noexcept | 
| constexpr std::string | TypeToString () const noexcept | 
| operator std::string () const | |
| template<typename T > | |
| const T & | Value () const | 
| template<typename T > | |
| T & | Value () | 
Static Public Member Functions | |
| static constexpr std::pair< const char, const char > | EnclosureCharacters (const ContainerType &type) noexcept | 
| static constexpr const char | EndCharacter (const ContainerType &type) noexcept | 
Protected Member Functions | |
| virtual Base::PointerType | BeforeAdditionActions (Base::PointerType item, const OnExistingAction onexisting)=0 | 
Protected Attributes | |
| std::vector< Base::PointerType > | m_items | 
| Items in container.  | |
  Protected Attributes inherited from StormByte::Config::Item::Base | |
| std::optional< std::string > | m_name | 
| Item name.  | |
Represents a container that can hold multiple configuration items.
| T | container type | 
| StormByte::Config::Item::Container::Container | ( | const std::string & | name | ) | 
Constructor
| name | container name | 
| StormByte::Config::Item::Container::Container | ( | std::string && | name | ) | 
Constructor
| name | container name | 
      
  | 
  default | 
Copy constructor
| base | container to copy | 
      
  | 
  defaultnoexcept | 
Move constructor
| base | container to move | 
      
  | 
  overridevirtualdefaultnoexcept | 
Destructor
      
  | 
  inline | 
Adds an item to the container (rvalue reference)
| item | item to add | 
| on_existing | action to take if item name already exists | 
| ItemNameAlreadyExists | if item name already exists | 
| Base & StormByte::Config::Item::Container::Add | ( | Base::PointerType | item, | 
| const OnExistingAction & | on_existing | ||
| ) | 
Adds an item to the container.
| item | The item to add. | 
| on_existing | The action to take if the item name already exists. | 
      
  | 
  inline | 
Adds an item to the container (const reference)
| item | item to add | 
| on_existing | action to take if item name already exists | 
| InvalidName | if item name is not allowed | 
| ItemNameAlreadyExists | if item name already exists | 
      
  | 
  protectedpure virtual | 
Actions to be done before adding an item
| item | item to check | 
| onexisting | action to take if item name already exists | 
| ItemNameAlreadyExists | if item name already exists | 
      
  | 
  inlinenoexcept | 
Clears all items
      
  | 
  constexprpure virtualnoexcept | 
Gets the container type
Implemented in StormByte::Config::Item::Group, and StormByte::Config::Item::List.
      
  | 
  inlineconstexprnoexcept | 
Gets the container type as string
      
  | 
  noexcept | 
Gets the full number of items
      
  | 
  inlinestaticconstexprnoexcept | 
Gets the start character for the container type
| type | container type | 
      
  | 
  inlinestaticconstexprnoexcept | 
Gets the end character for the container type
| type | container type | 
| bool StormByte::Config::Item::Container::Exists | ( | const std::string & | path | ) | const | 
Checks if item exists by path
| path | path to item | 
      
  | 
  inlineconstexprnoexcept | 
Get all items in the container
      
  | 
  inlineconstexprnoexcept | 
Get all items in the container
      
  | 
  inlinenoexcept | 
Inequality operator
| container | container to compare | 
Assignment operator
| base | container to copy | 
Move assignment operator
| base | container to move | 
      
  | 
  noexcept | 
Equality operator
| container | container to compare | 
| Base & StormByte::Config::Item::Container::operator[] | ( | const size_t & | index | ) | 
Gets a reference to Item by index
| OutOfBounds | if index is out of bounds | 
| const Base & StormByte::Config::Item::Container::operator[] | ( | const size_t & | index | ) | const | 
Gets a const reference to Item by index
| OutOfBounds | if index is out of bounds | 
| Base & StormByte::Config::Item::Container::operator[] | ( | const std::string & | path | ) | 
Gets a reference to Item by path
| path | path to item | 
| InvalidPath | if path is invalid | 
| ItemNotFound | if item is not found | 
      
  | 
  inline | 
Gets a const reference to Item by path
| path | path to item | 
| InvalidPath | if path is invalid | 
| ItemNotFound | if item is not found | 
| void StormByte::Config::Item::Container::Remove | ( | const size_t & | index | ) | 
Removes an item by index
| index | index to item | 
| OutOfBounds | if index is out of bounds | 
| void StormByte::Config::Item::Container::Remove | ( | const std::string & | path | ) | 
Removes an item by path
| path | path to item | 
| InvalidPath | if path is invalid | 
| ItemNotFound | if item is not found | 
      
  | 
  overridevirtualnoexcept | 
Returns a string representation of the container
Reimplemented from StormByte::Config::Item::Base.
      
  | 
  inlineconstexprnoexcept | 
Gets the number of items in the current level
      
  | 
  inlineconstexproverridevirtualnoexcept |