mcp_toolkit/core/json_schema
https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-00
Types
pub type CodegenError {
CannotConvertEmptyToJsonError
EmptyEnumError
DuplicatePropertyError(
type_name: String,
constructor_name: String,
property_name: String,
)
DuplicateConstructorError(name: String)
DuplicateTypeError(name: String)
DuplicateFunctionError(name: String)
}
Constructors
-
CannotConvertEmptyToJsonError -
EmptyEnumError -
DuplicatePropertyError( type_name: String, constructor_name: String, property_name: String, ) -
DuplicateConstructorError(name: String) -
DuplicateTypeError(name: String) -
DuplicateFunctionError(name: String)
pub type ObjectSchema {
ObjectSchema(
properties: List(#(String, Schema)),
required: List(String),
additional_properties: option.Option(Schema),
pattern_properties: List(#(String, Schema)),
)
}
Constructors
-
ObjectSchema( properties: List(#(String, Schema)), required: List(String), additional_properties: option.Option(Schema), pattern_properties: List(#(String, Schema)), )
pub type Schema {
Empty(metadata: List(#(String, dynamic.Dynamic)))
Type(
nullable: Bool,
metadata: List(#(String, dynamic.Dynamic)),
type_: Type,
)
Enum(
nullable: Bool,
metadata: List(#(String, dynamic.Dynamic)),
variants: List(String),
)
Object(
nullable: Bool,
metadata: List(#(String, dynamic.Dynamic)),
schema: ObjectSchema,
)
Array(
nullable: Bool,
metadata: List(#(String, dynamic.Dynamic)),
items: Schema,
)
Ref(
nullable: Bool,
metadata: List(#(String, dynamic.Dynamic)),
ref: String,
)
OneOf(
nullable: Bool,
metadata: List(#(String, dynamic.Dynamic)),
schemas: List(Schema),
)
AllOf(
nullable: Bool,
metadata: List(#(String, dynamic.Dynamic)),
schemas: List(Schema),
)
AnyOf(
nullable: Bool,
metadata: List(#(String, dynamic.Dynamic)),
schemas: List(Schema),
)
Not(
nullable: Bool,
metadata: List(#(String, dynamic.Dynamic)),
schema: Schema,
)
}
Constructors
-
Empty(metadata: List(#(String, dynamic.Dynamic)))Any value. The empty form is like a Java Object or TypeScript any.
-
Type( nullable: Bool, metadata: List(#(String, dynamic.Dynamic)), type_: Type, )A simple built-in type. The type form is like a Java or TypeScript primitive type.
-
Enum( nullable: Bool, metadata: List(#(String, dynamic.Dynamic)), variants: List(String), )One of a fixed set of strings. The enum form is like a Java or TypeScript enum.
-
Object( nullable: Bool, metadata: List(#(String, dynamic.Dynamic)), schema: ObjectSchema, ) -
Array( nullable: Bool, metadata: List(#(String, dynamic.Dynamic)), items: Schema, )A sequence of some other form. The items form is like a Java
List<T>or TypeScriptT[]. -
Ref( nullable: Bool, metadata: List(#(String, dynamic.Dynamic)), ref: String, )A reference to another schema definition
-
OneOf( nullable: Bool, metadata: List(#(String, dynamic.Dynamic)), schemas: List(Schema), )A schema that can be one of multiple schemas
-
AllOf( nullable: Bool, metadata: List(#(String, dynamic.Dynamic)), schemas: List(Schema), )A schema that must be all of multiple schemas
-
AnyOf( nullable: Bool, metadata: List(#(String, dynamic.Dynamic)), schemas: List(Schema), )A schema that can be any of multiple schemas
-
Not( nullable: Bool, metadata: List(#(String, dynamic.Dynamic)), schema: Schema, )A schema that must not match the given schema
Values
pub fn decode_object_schema(
data: dynamic.Dynamic,
) -> Result(ObjectSchema, List(decode.DecodeError))
pub fn decoder(
data: dynamic.Dynamic,
) -> Result(RootSchema, List(decode.DecodeError))
pub fn generate(
gen: Generator,
schema: RootSchema,
) -> Result(String, CodegenError)
pub fn object_schema_to_json(
schema: ObjectSchema,
) -> List(#(String, json.Json))
pub fn to_json(schema: RootSchema) -> json.Json