# schemars-zod **experimental** `schamars` to `zod` converter. Contains A few functions to aid Zod schema generation from rust types annotated with schemars. ## usage given these types: ```rust #[derive(schemars::JsonSchema)] struct MyStruct { a: String, b: u32, } #[derive(schemars::JsonSchema)] #[serde(rename_all = "camelCase")] struct MyOtherStruct { x: f64, y: f64, other: MyStruct, more: Vec, more_more: HashMap, time: DateTime, // from chrono crate } ``` This code will corresponding Zod types: ```rust let merged = merge_schemas(vec![schema_for!(MyStruct), schema_for!(MyOtherStruct)].into_iter()); let converted = convert(merged); println!("{}", converted); ``` And output: ```ts export const MyStruct = z.object({a: z.string(), b: z.number().int(),}); export type MyStruct = z.infer; export const MyOtherStruct = z.object({ more: z.array(z.lazy(() => MyStruct)), moreMore: z.record(z.lazy(() => MyStruct)), other: z.lazy(() => MyStruct), time: z.coerce.date(), x: z.number(), y: z.number(), }); export type MyOtherStruct = z.infer; ```