use the jsonschema::RootSchema instead of accidentally inventing our own (#4047)

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* A snapshot a day keeps the bugs away! 📷🐛 (OS: ubuntu-latest)

* empty

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* updates

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* fix clippy

Signed-off-by: Jess Frazelle <github@jessfraz.com>

* A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)

* Revert "A snapshot a day keeps the bugs away! 📷🐛 (OS: windows-latest)"

This reverts commit 64cee26626.

---------

Signed-off-by: Jess Frazelle <github@jessfraz.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This commit is contained in:
Jess Frazelle
2024-09-30 12:30:22 -07:00
committed by GitHub
parent bb3f9e0377
commit f74b436e3d
48 changed files with 132559 additions and 112098 deletions

View File

@ -271,24 +271,14 @@ fn do_stdlib_inner(
let required = !ty_ident.to_string().starts_with("Option <");
if ty_string != "ExecState" && ty_string != "Args" {
let schema = if ty_ident.to_string().starts_with("Vec < ")
|| ty_ident.to_string().starts_with("Option <")
|| ty_ident.to_string().starts_with('[')
{
quote! {
<#ty_ident>::json_schema(&mut generator)
}
} else {
quote! {
#ty_ident::json_schema(&mut generator)
}
let schema = quote! {
generator.root_schema_for::<#ty_ident>()
};
arg_types.push(quote! {
#docs_crate::StdLibFnArg {
name: #arg_name.to_string(),
type_: #ty_string.to_string(),
schema: #schema,
schema_definitions: generator.definitions().clone(),
required: #required,
}
});
@ -344,12 +334,11 @@ fn do_stdlib_inner(
let return_type = if !ret_ty_string.is_empty() || ret_ty_string != "()" {
let ret_ty_string = rust_type_to_openapi_type(&ret_ty_string);
quote! {
let schema = <#return_type_inner>::json_schema(&mut generator);
let schema = generator.root_schema_for::<#return_type_inner>();
Some(#docs_crate::StdLibFnArg {
name: "".to_string(),
type_: #ret_ty_string.to_string(),
schema,
schema_definitions: generator.definitions().clone(),
required: true,
})
}

View File

@ -81,8 +81,7 @@ impl crate::docs::StdLibFn for SomeFn {
vec![crate::docs::StdLibFnArg {
name: "data".to_string(),
type_: "Foo".to_string(),
schema: Foo::json_schema(&mut generator),
schema_definitions: generator.definitions().clone(),
schema: generator.root_schema_for::<Foo>(),
required: true,
}]
}
@ -91,12 +90,11 @@ impl crate::docs::StdLibFn for SomeFn {
let mut settings = schemars::gen::SchemaSettings::openapi3();
settings.inline_subschemas = inline_subschemas;
let mut generator = schemars::gen::SchemaGenerator::new(settings);
let schema = <i32>::json_schema(&mut generator);
let schema = generator.root_schema_for::<i32>();
Some(crate::docs::StdLibFnArg {
name: "".to_string(),
type_: "i32".to_string(),
schema,
schema_definitions: generator.definitions().clone(),
required: true,
})
}

View File

@ -81,8 +81,7 @@ impl crate::docs::StdLibFn for SomeFn {
vec![crate::docs::StdLibFnArg {
name: "data".to_string(),
type_: "string".to_string(),
schema: str::json_schema(&mut generator),
schema_definitions: generator.definitions().clone(),
schema: generator.root_schema_for::<str>(),
required: true,
}]
}
@ -91,12 +90,11 @@ impl crate::docs::StdLibFn for SomeFn {
let mut settings = schemars::gen::SchemaSettings::openapi3();
settings.inline_subschemas = inline_subschemas;
let mut generator = schemars::gen::SchemaGenerator::new(settings);
let schema = <i32>::json_schema(&mut generator);
let schema = generator.root_schema_for::<i32>();
Some(crate::docs::StdLibFnArg {
name: "".to_string(),
type_: "i32".to_string(),
schema,
schema_definitions: generator.definitions().clone(),
required: true,
})
}

View File

@ -114,8 +114,7 @@ impl crate::docs::StdLibFn for Show {
vec![crate::docs::StdLibFnArg {
name: "args".to_string(),
type_: "[number]".to_string(),
schema: <[f64; 2usize]>::json_schema(&mut generator),
schema_definitions: generator.definitions().clone(),
schema: generator.root_schema_for::<[f64; 2usize]>(),
required: true,
}]
}
@ -124,12 +123,11 @@ impl crate::docs::StdLibFn for Show {
let mut settings = schemars::gen::SchemaSettings::openapi3();
settings.inline_subschemas = inline_subschemas;
let mut generator = schemars::gen::SchemaGenerator::new(settings);
let schema = <f64>::json_schema(&mut generator);
let schema = generator.root_schema_for::<f64>();
Some(crate::docs::StdLibFnArg {
name: "".to_string(),
type_: "number".to_string(),
schema,
schema_definitions: generator.definitions().clone(),
required: true,
})
}

View File

@ -81,8 +81,7 @@ impl crate::docs::StdLibFn for Show {
vec![crate::docs::StdLibFnArg {
name: "args".to_string(),
type_: "number".to_string(),
schema: f64::json_schema(&mut generator),
schema_definitions: generator.definitions().clone(),
schema: generator.root_schema_for::<f64>(),
required: true,
}]
}
@ -91,12 +90,11 @@ impl crate::docs::StdLibFn for Show {
let mut settings = schemars::gen::SchemaSettings::openapi3();
settings.inline_subschemas = inline_subschemas;
let mut generator = schemars::gen::SchemaGenerator::new(settings);
let schema = <f64>::json_schema(&mut generator);
let schema = generator.root_schema_for::<f64>();
Some(crate::docs::StdLibFnArg {
name: "".to_string(),
type_: "number".to_string(),
schema,
schema_definitions: generator.definitions().clone(),
required: true,
})
}

View File

@ -115,8 +115,7 @@ impl crate::docs::StdLibFn for MyFunc {
vec![crate::docs::StdLibFnArg {
name: "args".to_string(),
type_: "kittycad::types::InputFormat".to_string(),
schema: <Option<kittycad::types::InputFormat>>::json_schema(&mut generator),
schema_definitions: generator.definitions().clone(),
schema: generator.root_schema_for::<Option<kittycad::types::InputFormat>>(),
required: false,
}]
}
@ -125,12 +124,11 @@ impl crate::docs::StdLibFn for MyFunc {
let mut settings = schemars::gen::SchemaSettings::openapi3();
settings.inline_subschemas = inline_subschemas;
let mut generator = schemars::gen::SchemaGenerator::new(settings);
let schema = <Vec<Sketch>>::json_schema(&mut generator);
let schema = generator.root_schema_for::<Vec<Sketch>>();
Some(crate::docs::StdLibFnArg {
name: "".to_string(),
type_: "[Sketch]".to_string(),
schema,
schema_definitions: generator.definitions().clone(),
required: true,
})
}

View File

@ -116,15 +116,13 @@ impl crate::docs::StdLibFn for LineTo {
crate::docs::StdLibFnArg {
name: "data".to_string(),
type_: "LineToData".to_string(),
schema: LineToData::json_schema(&mut generator),
schema_definitions: generator.definitions().clone(),
schema: generator.root_schema_for::<LineToData>(),
required: true,
},
crate::docs::StdLibFnArg {
name: "sketch".to_string(),
type_: "Sketch".to_string(),
schema: Sketch::json_schema(&mut generator),
schema_definitions: generator.definitions().clone(),
schema: generator.root_schema_for::<Sketch>(),
required: true,
},
]
@ -134,12 +132,11 @@ impl crate::docs::StdLibFn for LineTo {
let mut settings = schemars::gen::SchemaSettings::openapi3();
settings.inline_subschemas = inline_subschemas;
let mut generator = schemars::gen::SchemaGenerator::new(settings);
let schema = <Sketch>::json_schema(&mut generator);
let schema = generator.root_schema_for::<Sketch>();
Some(crate::docs::StdLibFnArg {
name: "".to_string(),
type_: "Sketch".to_string(),
schema,
schema_definitions: generator.definitions().clone(),
required: true,
})
}

View File

@ -114,8 +114,7 @@ impl crate::docs::StdLibFn for Min {
vec![crate::docs::StdLibFnArg {
name: "args".to_string(),
type_: "[number]".to_string(),
schema: <Vec<f64>>::json_schema(&mut generator),
schema_definitions: generator.definitions().clone(),
schema: generator.root_schema_for::<Vec<f64>>(),
required: true,
}]
}
@ -124,12 +123,11 @@ impl crate::docs::StdLibFn for Min {
let mut settings = schemars::gen::SchemaSettings::openapi3();
settings.inline_subschemas = inline_subschemas;
let mut generator = schemars::gen::SchemaGenerator::new(settings);
let schema = <f64>::json_schema(&mut generator);
let schema = generator.root_schema_for::<f64>();
Some(crate::docs::StdLibFnArg {
name: "".to_string(),
type_: "number".to_string(),
schema,
schema_definitions: generator.definitions().clone(),
required: true,
})
}

View File

@ -81,8 +81,7 @@ impl crate::docs::StdLibFn for Show {
vec![crate::docs::StdLibFnArg {
name: "args".to_string(),
type_: "number".to_string(),
schema: <Option<f64>>::json_schema(&mut generator),
schema_definitions: generator.definitions().clone(),
schema: generator.root_schema_for::<Option<f64>>(),
required: false,
}]
}
@ -91,12 +90,11 @@ impl crate::docs::StdLibFn for Show {
let mut settings = schemars::gen::SchemaSettings::openapi3();
settings.inline_subschemas = inline_subschemas;
let mut generator = schemars::gen::SchemaGenerator::new(settings);
let schema = <f64>::json_schema(&mut generator);
let schema = generator.root_schema_for::<f64>();
Some(crate::docs::StdLibFnArg {
name: "".to_string(),
type_: "number".to_string(),
schema,
schema_definitions: generator.definitions().clone(),
required: true,
})
}

View File

@ -81,8 +81,7 @@ impl crate::docs::StdLibFn for Import {
vec![crate::docs::StdLibFnArg {
name: "args".to_string(),
type_: "kittycad::types::InputFormat".to_string(),
schema: <Option<kittycad::types::InputFormat>>::json_schema(&mut generator),
schema_definitions: generator.definitions().clone(),
schema: generator.root_schema_for::<Option<kittycad::types::InputFormat>>(),
required: false,
}]
}
@ -91,12 +90,11 @@ impl crate::docs::StdLibFn for Import {
let mut settings = schemars::gen::SchemaSettings::openapi3();
settings.inline_subschemas = inline_subschemas;
let mut generator = schemars::gen::SchemaGenerator::new(settings);
let schema = <f64>::json_schema(&mut generator);
let schema = generator.root_schema_for::<f64>();
Some(crate::docs::StdLibFnArg {
name: "".to_string(),
type_: "number".to_string(),
schema,
schema_definitions: generator.definitions().clone(),
required: true,
})
}

View File

@ -81,8 +81,7 @@ impl crate::docs::StdLibFn for Import {
vec![crate::docs::StdLibFnArg {
name: "args".to_string(),
type_: "kittycad::types::InputFormat".to_string(),
schema: <Option<kittycad::types::InputFormat>>::json_schema(&mut generator),
schema_definitions: generator.definitions().clone(),
schema: generator.root_schema_for::<Option<kittycad::types::InputFormat>>(),
required: false,
}]
}
@ -91,12 +90,11 @@ impl crate::docs::StdLibFn for Import {
let mut settings = schemars::gen::SchemaSettings::openapi3();
settings.inline_subschemas = inline_subschemas;
let mut generator = schemars::gen::SchemaGenerator::new(settings);
let schema = <Vec<Sketch>>::json_schema(&mut generator);
let schema = generator.root_schema_for::<Vec<Sketch>>();
Some(crate::docs::StdLibFnArg {
name: "".to_string(),
type_: "[Sketch]".to_string(),
schema,
schema_definitions: generator.definitions().clone(),
required: true,
})
}

View File

@ -81,8 +81,7 @@ impl crate::docs::StdLibFn for Import {
vec![crate::docs::StdLibFnArg {
name: "args".to_string(),
type_: "kittycad::types::InputFormat".to_string(),
schema: <Option<kittycad::types::InputFormat>>::json_schema(&mut generator),
schema_definitions: generator.definitions().clone(),
schema: generator.root_schema_for::<Option<kittycad::types::InputFormat>>(),
required: false,
}]
}
@ -91,12 +90,11 @@ impl crate::docs::StdLibFn for Import {
let mut settings = schemars::gen::SchemaSettings::openapi3();
settings.inline_subschemas = inline_subschemas;
let mut generator = schemars::gen::SchemaGenerator::new(settings);
let schema = <Vec<Sketch>>::json_schema(&mut generator);
let schema = generator.root_schema_for::<Vec<Sketch>>();
Some(crate::docs::StdLibFnArg {
name: "".to_string(),
type_: "[Sketch]".to_string(),
schema,
schema_definitions: generator.definitions().clone(),
required: true,
})
}

View File

@ -81,8 +81,7 @@ impl crate::docs::StdLibFn for Show {
vec![crate::docs::StdLibFnArg {
name: "args".to_string(),
type_: "[number]".to_string(),
schema: <Vec<f64>>::json_schema(&mut generator),
schema_definitions: generator.definitions().clone(),
schema: generator.root_schema_for::<Vec<f64>>(),
required: true,
}]
}
@ -91,12 +90,11 @@ impl crate::docs::StdLibFn for Show {
let mut settings = schemars::gen::SchemaSettings::openapi3();
settings.inline_subschemas = inline_subschemas;
let mut generator = schemars::gen::SchemaGenerator::new(settings);
let schema = <()>::json_schema(&mut generator);
let schema = generator.root_schema_for::<()>();
Some(crate::docs::StdLibFnArg {
name: "".to_string(),
type_: "()".to_string(),
schema,
schema_definitions: generator.definitions().clone(),
required: true,
})
}

View File

@ -85,12 +85,11 @@ impl crate::docs::StdLibFn for SomeFunction {
let mut settings = schemars::gen::SchemaSettings::openapi3();
settings.inline_subschemas = inline_subschemas;
let mut generator = schemars::gen::SchemaGenerator::new(settings);
let schema = <i32>::json_schema(&mut generator);
let schema = generator.root_schema_for::<i32>();
Some(crate::docs::StdLibFnArg {
name: "".to_string(),
type_: "i32".to_string(),
schema,
schema_definitions: generator.definitions().clone(),
required: true,
})
}