/* * This source code is released into the public domain. */ module; #include #include export module nihil.config:string; import nihil.ucl; import :option; namespace nihil::config { export struct string final : option { string(std::string &storage, std::string_view name, std::string_view description) noexcept; ~string(); auto get_string() const -> std::string override; auto set_string(std::string_view new_value) -> void override; auto to_ucl() const -> ucl::object override; auto from_ucl(ucl::object const &uclobj) -> void override; private: std::string &_storage; }; } // namespace nihil::config