forgeant docs-test-0
Build LLM-powered agents in C++
Loading...
Searching...
No Matches
schema.hpp
Go to the documentation of this file.
1#ifndef FORGEANT_SCHEMA_SCHEMA_HPP
2#define FORGEANT_SCHEMA_SCHEMA_HPP
3
5#include <initializer_list>
6#include <string>
7#include <string_view>
8#include <vector>
9
10namespace forgeant {
11
13 public:
14 SchemaBuilder& description(std::string_view desc);
16 SchemaBuilder& enum_values(std::initializer_list<std::string> values);
17 SchemaBuilder& property(const std::string& name, const Json& prop_schema);
18 SchemaBuilder& required(std::initializer_list<std::string> fields);
19 SchemaBuilder& items(const Json& item_schema);
20
21 [[nodiscard]] Json build() const;
22
23 private:
24 friend class Schema;
25 explicit SchemaBuilder(std::string type);
26
27 Json schema_;
28};
29
30class Schema {
31 public:
38};
39
40} // namespace forgeant
41
42#endif // FORGEANT_SCHEMA_SCHEMA_HPP
Definition json.hpp:27
Definition schema.hpp:12
SchemaBuilder & items(const Json &item_schema)
SchemaBuilder & default_value(const Json &value)
SchemaBuilder & required(std::initializer_list< std::string > fields)
SchemaBuilder & property(const std::string &name, const Json &prop_schema)
SchemaBuilder & enum_values(std::initializer_list< std::string > values)
SchemaBuilder & description(std::string_view desc)
Definition schema.hpp:30
static SchemaBuilder string()
static SchemaBuilder number()
static SchemaBuilder array()
static SchemaBuilder integer()
static SchemaBuilder boolean()
static SchemaBuilder object()
Definition agent.hpp:25