25 #ifndef FABLE_SCHEMA_CUSTOM_HPP_ 26 #define FABLE_SCHEMA_CUSTOM_HPP_ 47 : impl_(std::move(s).reset_pointer().
get()), from_conf_fn_(f) {}
56 return std::move(*
this);
64 std::string
type_string()
const override {
return impl_->type_string(); }
65 bool is_required()
const override {
return impl_->is_required(); }
66 const std::string&
description()
const override {
return impl_->description(); }
67 void set_description(
const std::string& s)
override {
return impl_->set_description(s); }
68 Json usage()
const override {
return impl_->usage(); }
70 void validate(
const Conf& c)
const override { impl_->validate(c); }
75 throw Error(
"no deserializer configured");
77 from_conf_fn_(
this, c);
83 throw Error(
"cannot deserialize after reset_ptr is called");
90 std::shared_ptr<schema::Interface> impl_{
nullptr};
91 std::function<void(CustomDeserializer*, const Conf&)> from_conf_fn_{};
97 #endif // FABLE_SCHEMA_CUSTOM_HPP_
bool is_required() const override
Definition: custom.hpp:65
Json usage() const override
Definition: custom.hpp:68
void set_description(const std::string &s) override
Definition: custom.hpp:67
void from_conf(const Conf &c) override
Definition: custom.hpp:73
JsonType type() const override
Definition: custom.hpp:63
Definition: interface.hpp:263
Interface * clone() const override
Definition: custom.hpp:60
void to_json(Json &j) const override
Definition: custom.hpp:71
void validate(const Conf &c) const override
Definition: custom.hpp:70
nlohmann::json Json
Definition: json.hpp:62
Json::value_t JsonType
Definition: json.hpp:78
Definition: interface.hpp:72
void reset_ptr() override
Definition: custom.hpp:80
Definition: custom.hpp:43
virtual Json to_json() const
Definition: interface.hpp:220
Json json_schema() const override
Definition: custom.hpp:69
const std::string & description() const override
Definition: custom.hpp:66
std::string type_string() const override
Definition: custom.hpp:64