// // properties.hpp // logger // // Created by Sam Jaffe on 10/3/15. // // #pragma once #include #include #include #include "../../../types/variant/variant.hpp" namespace logging { struct properties; using object_t = std::map; using array_t = std::vector; struct properties { bool contains(std::string const & key) const; bool contains(std::size_t idx) const; object_t const & object() const; array_t const & array() const; properties const & operator[](std::string const & key) const; properties const & operator[](char const * key) const { return operator[](std::string(key)); } properties const & operator[](std::size_t idx) const; operator std::string const &() const; std::string const & str() const; operator int() const; operator bool() const; variant data; }; extern properties const DEFAULT_APPENDER_SCHEMA; extern properties const DEFAULT_LOGGER_SCHEMA; }