Set format
property on integers
This commit is contained in:
parent
a236d7aee0
commit
6cf9343657
10 changed files with 52 additions and 32 deletions
|
@ -5,6 +5,12 @@ use serde_json::json;
|
||||||
|
|
||||||
macro_rules! simple_impl {
|
macro_rules! simple_impl {
|
||||||
($type:tt => $instance_type:ident) => {
|
($type:tt => $instance_type:ident) => {
|
||||||
|
simple_impl!($type => $instance_type, None);
|
||||||
|
};
|
||||||
|
($type:tt => $instance_type:ident, $format: literal) => {
|
||||||
|
simple_impl!($type => $instance_type, Some($format.to_owned()));
|
||||||
|
};
|
||||||
|
($type:tt => $instance_type:ident, $($format:tt)+) => {
|
||||||
impl JsonSchema for $type {
|
impl JsonSchema for $type {
|
||||||
no_ref_schema!();
|
no_ref_schema!();
|
||||||
|
|
||||||
|
@ -15,6 +21,7 @@ macro_rules! simple_impl {
|
||||||
fn json_schema(_: &mut SchemaGenerator) -> Result {
|
fn json_schema(_: &mut SchemaGenerator) -> Result {
|
||||||
Ok(SchemaObject {
|
Ok(SchemaObject {
|
||||||
instance_type: Some(InstanceType::$instance_type.into()),
|
instance_type: Some(InstanceType::$instance_type.into()),
|
||||||
|
format: $($format)+,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}
|
}
|
||||||
.into())
|
.into())
|
||||||
|
@ -26,20 +33,20 @@ macro_rules! simple_impl {
|
||||||
simple_impl!(str => String);
|
simple_impl!(str => String);
|
||||||
simple_impl!(String => String);
|
simple_impl!(String => String);
|
||||||
simple_impl!(bool => Boolean);
|
simple_impl!(bool => Boolean);
|
||||||
simple_impl!(f32 => Number);
|
simple_impl!(f32 => Number, "float");
|
||||||
simple_impl!(f64 => Number);
|
simple_impl!(f64 => Number, "double");
|
||||||
simple_impl!(i8 => Integer);
|
simple_impl!(i8 => Integer, "int8");
|
||||||
simple_impl!(i16 => Integer);
|
simple_impl!(i16 => Integer, "int16");
|
||||||
simple_impl!(i32 => Integer);
|
simple_impl!(i32 => Integer, "int32");
|
||||||
simple_impl!(i64 => Integer);
|
simple_impl!(i64 => Integer, "int64");
|
||||||
simple_impl!(i128 => Integer);
|
simple_impl!(i128 => Integer, "int128");
|
||||||
simple_impl!(isize => Integer);
|
simple_impl!(isize => Integer, "int");
|
||||||
simple_impl!(u8 => Integer);
|
simple_impl!(u8 => Integer, "uint8");
|
||||||
simple_impl!(u16 => Integer);
|
simple_impl!(u16 => Integer, "uint16");
|
||||||
simple_impl!(u32 => Integer);
|
simple_impl!(u32 => Integer, "uint32");
|
||||||
simple_impl!(u64 => Integer);
|
simple_impl!(u64 => Integer, "uint64");
|
||||||
simple_impl!(u128 => Integer);
|
simple_impl!(u128 => Integer, "uint128");
|
||||||
simple_impl!(usize => Integer);
|
simple_impl!(usize => Integer, "uint");
|
||||||
simple_impl!(() => Null);
|
simple_impl!(() => Null);
|
||||||
|
|
||||||
impl JsonSchema for char {
|
impl JsonSchema for char {
|
||||||
|
|
|
@ -32,7 +32,8 @@
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"foo": {
|
"foo": {
|
||||||
"type": "integer"
|
"type": "integer",
|
||||||
|
"format": "int32"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": [
|
"required": [
|
||||||
|
@ -52,7 +53,8 @@
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"type": "integer"
|
"type": "integer",
|
||||||
|
"format": "int32"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
|
|
|
@ -36,17 +36,18 @@
|
||||||
{
|
{
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
"bar": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"foo": {
|
||||||
|
"type": "integer",
|
||||||
|
"format": "int32"
|
||||||
|
},
|
||||||
"typeProperty": {
|
"typeProperty": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": [
|
"enum": [
|
||||||
"Struct"
|
"Struct"
|
||||||
]
|
]
|
||||||
},
|
|
||||||
"bar": {
|
|
||||||
"type": "boolean"
|
|
||||||
},
|
|
||||||
"foo": {
|
|
||||||
"type": "integer"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": [
|
"required": [
|
||||||
|
|
|
@ -18,7 +18,8 @@
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"foo": {
|
"foo": {
|
||||||
"type": "integer"
|
"type": "integer",
|
||||||
|
"format": "int32"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": [
|
"required": [
|
||||||
|
@ -30,7 +31,8 @@
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"type": "integer"
|
"type": "integer",
|
||||||
|
"format": "int32"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
|
|
|
@ -4,13 +4,16 @@
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"camelCase": {
|
"camelCase": {
|
||||||
"type": "integer"
|
"type": "integer",
|
||||||
|
"format": "int32"
|
||||||
},
|
},
|
||||||
"new_name_1": {
|
"new_name_1": {
|
||||||
"type": "integer"
|
"type": "integer",
|
||||||
|
"format": "int32"
|
||||||
},
|
},
|
||||||
"new_name_2": {
|
"new_name_2": {
|
||||||
"type": "integer"
|
"type": "integer",
|
||||||
|
"format": "int32"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": [
|
"required": [
|
||||||
|
|
|
@ -7,7 +7,8 @@
|
||||||
"$ref": "#/definitions/another-new-name"
|
"$ref": "#/definitions/another-new-name"
|
||||||
},
|
},
|
||||||
"t": {
|
"t": {
|
||||||
"type": "integer"
|
"type": "integer",
|
||||||
|
"format": "int32"
|
||||||
},
|
},
|
||||||
"u": {
|
"u": {
|
||||||
"type": "null"
|
"type": "null"
|
||||||
|
|
|
@ -7,7 +7,8 @@
|
||||||
"$ref": "#/definitions/MySimpleStruct"
|
"$ref": "#/definitions/MySimpleStruct"
|
||||||
},
|
},
|
||||||
"t": {
|
"t": {
|
||||||
"type": "integer"
|
"type": "integer",
|
||||||
|
"format": "int32"
|
||||||
},
|
},
|
||||||
"u": {
|
"u": {
|
||||||
"type": "null"
|
"type": "null"
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||||
"title": "Newtype",
|
"title": "Newtype",
|
||||||
"type": "integer"
|
"type": "integer",
|
||||||
|
"format": "int32"
|
||||||
}
|
}
|
|
@ -7,7 +7,8 @@
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"foo": {
|
"foo": {
|
||||||
"type": "integer"
|
"type": "integer",
|
||||||
|
"format": "int32"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"required": [
|
"required": [
|
||||||
|
|
|
@ -4,7 +4,8 @@
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": [
|
"items": [
|
||||||
{
|
{
|
||||||
"type": "integer"
|
"type": "integer",
|
||||||
|
"format": "int32"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue