Slightly abstract away map/set types
This commit is contained in:
parent
998e6c9f0f
commit
8afce08c54
5 changed files with 10 additions and 12 deletions
|
@ -1,7 +1,6 @@
|
||||||
use crate::make_schema::MakeSchema;
|
use crate::make_schema::MakeSchema;
|
||||||
use crate::schema::*;
|
use crate::schema::*;
|
||||||
use crate::{MakeSchemaError, Result};
|
use crate::{MakeSchemaError, Map, Result};
|
||||||
use std::collections::BTreeMap as Map;
|
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Clone)]
|
#[derive(Debug, PartialEq, Clone)]
|
||||||
pub struct SchemaSettings {
|
pub struct SchemaSettings {
|
||||||
|
|
|
@ -1,13 +1,15 @@
|
||||||
|
pub type Map<K, V> = std::collections::BTreeMap<K, V>;
|
||||||
|
pub type Set<T> = std::collections::BTreeSet<T>;
|
||||||
|
|
||||||
pub mod gen;
|
pub mod gen;
|
||||||
pub mod make_schema;
|
|
||||||
pub mod schema;
|
pub mod schema;
|
||||||
|
|
||||||
mod error;
|
mod error;
|
||||||
|
mod make_schema;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
mod macros;
|
mod macros;
|
||||||
|
|
||||||
pub use error::*;
|
pub use error::*;
|
||||||
|
|
||||||
pub use make_schema::MakeSchema;
|
pub use make_schema::MakeSchema;
|
||||||
|
|
||||||
pub use schemars_derive::*;
|
pub use schemars_derive::*;
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
use crate::gen::{BoolSchemas, SchemaGenerator};
|
use crate::gen::{BoolSchemas, SchemaGenerator};
|
||||||
use crate::schema::*;
|
use crate::schema::*;
|
||||||
use crate::Result;
|
use crate::{Map, Result};
|
||||||
use serde_json::json;
|
use serde_json::json;
|
||||||
use std::collections::BTreeMap as Map;
|
|
||||||
|
|
||||||
pub trait MakeSchema {
|
pub trait MakeSchema {
|
||||||
fn is_referenceable() -> bool {
|
fn is_referenceable() -> bool {
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
use crate as schemars;
|
use crate as schemars;
|
||||||
use crate::{MakeSchema, MakeSchemaError, Result};
|
use crate::{MakeSchema, MakeSchemaError, Map, Result, Set};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
use std::collections::BTreeMap as Map;
|
|
||||||
use std::collections::BTreeSet as Set;
|
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, MakeSchema)]
|
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, MakeSchema)]
|
||||||
#[serde(untagged)]
|
#[serde(untagged)]
|
||||||
|
|
|
@ -135,7 +135,7 @@ fn schema_for_external_tagged_enum(variants: &[Variant], cattrs: &attr::Containe
|
||||||
wrap_schema_fields(quote! {
|
wrap_schema_fields(quote! {
|
||||||
instance_type: Some(schemars::schema::InstanceType::Object.into()),
|
instance_type: Some(schemars::schema::InstanceType::Object.into()),
|
||||||
properties: {
|
properties: {
|
||||||
let mut props = std::collections::BTreeMap::new();
|
let mut props = schemars::Map::new();
|
||||||
props.insert(#name.to_owned(), #sub_schema);
|
props.insert(#name.to_owned(), #sub_schema);
|
||||||
props
|
props
|
||||||
},
|
},
|
||||||
|
@ -198,12 +198,12 @@ fn schema_for_struct(fields: &[Field], cattrs: &attr::Container) -> TokenStream
|
||||||
let schema = wrap_schema_fields(quote! {
|
let schema = wrap_schema_fields(quote! {
|
||||||
instance_type: Some(schemars::schema::InstanceType::Object.into()),
|
instance_type: Some(schemars::schema::InstanceType::Object.into()),
|
||||||
properties: {
|
properties: {
|
||||||
let mut props = std::collections::BTreeMap::new();
|
let mut props = schemars::Map::new();
|
||||||
#(#recurse)*
|
#(#recurse)*
|
||||||
props
|
props
|
||||||
},
|
},
|
||||||
required: {
|
required: {
|
||||||
let mut required = std::collections::BTreeSet::new();
|
let mut required = schemars::Set::new();
|
||||||
#(required.insert(#required.to_owned());)*
|
#(required.insert(#required.to_owned());)*
|
||||||
required
|
required
|
||||||
},
|
},
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue