27 #ifndef FABLE_SCHEMA_STRING_HPP_ 28 #define FABLE_SCHEMA_STRING_HPP_ 50 #define FABLE_REGEX_C_IDENTIFIER "^[a-zA-Z_][a-zA-Z0-9_]*$" 68 using Type = std::string;
70 String(Type* ptr, std::string&& desc) :
Base(JsonType::string, std::move(desc)), ptr_(ptr) {}
131 const std::string&
pattern()
const;
223 const std::vector<std::string>&
enum_of()
const;
252 Json serialize(
const Type& x)
const;
253 Type deserialize(
const Conf& c)
const;
257 bool interpolate_{
false};
258 size_t min_length_{0};
259 size_t max_length_{std::numeric_limits<size_t>::max()};
260 std::string pattern_{};
261 std::vector<std::string> enum_{};
266 inline String make_schema(std::string* ptr, std::string&& desc) {
267 return String(ptr, std::move(desc));
273 #endif // FABLE_SCHEMA_STRING_HPP_
void from_conf(const Conf &c) override
Definition: string.cpp:144
Environment * environment() const
Definition: string.cpp:73
void set_enum_of(std::vector< std::string > &&init)
Definition: string.cpp:81
Definition: string.hpp:66
bool interpolate() const
Definition: string.cpp:66
const std::string & pattern() const
Definition: string.cpp:54
size_t min_length() const
Definition: string.cpp:35
void set_interpolate(bool value)
Definition: string.cpp:67
void set_min_length(size_t value)
Definition: string.cpp:36
nlohmann::json Json
Definition: json.hpp:62
const std::vector< std::string > & enum_of() const
Definition: string.cpp:80
Definition: environment.hpp:37
String c_identifier() &&
Definition: string.cpp:61
virtual Json to_json() const
Definition: interface.hpp:220
void set_pattern(const std::string &value)
Definition: string.cpp:55
void reset_ptr() override
Definition: string.cpp:130
size_t max_length() const
Definition: string.cpp:47
void set_environment(Environment *env)
Definition: string.cpp:74
void set_max_length(size_t value)
Definition: string.cpp:48
String not_empty() &&
Definition: string.cpp:42
void validate(const Conf &c) const override
Definition: string.cpp:107
Definition: interface.hpp:354
Json json_schema() const override
Definition: string.cpp:87