Program Listing for File toml.h#

Return to documentation for file (interfaces\toml.h)

#ifndef __IDL_GENERATED__TOML_H__20251106_105036_482__
#define __IDL_GENERATED__TOML_H__20251106_105036_482__

#ifdef _MSC_VER
// Prevent bogus warnings about uninitialized members during static code analysis.
#pragma warning(push)
#pragma warning(disable : 26495)
#endif

// Provide fixed width integer types.
#include <cstdint>

#include "core.h"

namespace sdv
{
    namespace toml
    {
        except XTOMLParseException : XSysExcept
        {
            // _id might also be member of the base class. Suppress in static code analysis.
            // cppcheck-suppress duplInheritedMember
            inline static const ::sdv::exception_id _id = 0x2D7A36F0F156B309;

            // _description might also be member of the base class. Suppress in static code analysis.
            // cppcheck-suppress duplInheritedMember
            inline static const char _description[] = "TOML parse exception.";

            sdv::u8string ssMessage;

            virtual const char* what() const noexcept override { return _description; }

            virtual ::sdv::exception_id id() const noexcept override { return _id; }
        };

        enum class ENodeType : uint8_t
        {
            node_table,

            node_array,

            node_integer,

            node_floating_point,

            node_boolean,

            node_string,

            node_invalid,
        };

        interface INodeInfo
        {
            static constexpr ::sdv::interface_id _id = 0x238A8EF0420C4DB8;

            virtual sdv::u8string GetName() const = 0;

            virtual ENodeType GetType() const = 0;

            virtual sdv::any_t GetValue() const = 0;

            virtual sdv::u8string GetTOML() const = 0;
        };

        interface INodeCollection
        {
            static constexpr ::sdv::interface_id _id = 0xBC836E7F94697937;

            virtual uint32_t GetCount() const = 0;

            virtual IInterfaceAccess* GetNode(/*in*/ uint32_t uiIndex) const = 0;

            virtual IInterfaceAccess* GetNodeDirect(/*in*/ const sdv::u8string& ssPath) const = 0;
        };

        interface ITOMLParser
        {
            static constexpr ::sdv::interface_id _id = 0xD504E441EE68E0A4;

            virtual bool Process(/*in*/ const sdv::u8string& ssContent) = 0;
        };
    }
}

#ifdef _MSC_VER
#pragma warning(pop)
#endif

#endif // !defined(__IDL_GENERATED__TOML_H__20251106_105036_488__)