1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
macro_rules! no_ref_schema { () => { fn is_referenceable() -> bool { false } }; } macro_rules! forward_impl { (($($impl:tt)+) => $target:ty) => { impl $($impl)+ { fn is_referenceable() -> bool { <$target>::is_referenceable() } fn schema_name() -> String { <$target>::schema_name() } fn json_schema(gen: &mut SchemaGenerator) -> Schema { <$target>::json_schema(gen) } fn json_schema_for_flatten(gen: &mut SchemaGenerator) -> Schema { <$target>::json_schema_for_flatten(gen) } fn add_schema_as_property( gen: &mut SchemaGenerator, parent: &mut crate::schema::SchemaObject, name: String, metadata: Option<crate::schema::Metadata>, required: bool, ) { <$target>::add_schema_as_property(gen, parent, name, metadata, required) } } }; ($ty:ty => $target:ty) => { forward_impl!((JsonSchema for $ty) => $target); }; } mod array; #[cfg(feature = "arrayvec")] mod arrayvec; #[cfg(std_atomic)] mod atomic; #[cfg(feature = "chrono")] mod chrono; mod core; #[cfg(feature = "either")] mod either; mod ffi; #[cfg(feature = "indexmap")] mod indexmap; mod maps; mod nonzero_signed; mod nonzero_unsigned; mod primitives; mod sequences; mod serdejson; #[cfg(feature = "smallvec")] mod smallvec; mod std_time; #[cfg(feature = "time")] mod time; mod tuple; #[cfg(feature = "uuid")] mod uuid; mod wrapper;