Skip to content

Commit af03443

Browse files
committed
Support im 15.1
1 parent 524e590 commit af03443

File tree

4 files changed

+112
-15
lines changed

4 files changed

+112
-15
lines changed

Cargo.lock

Lines changed: 56 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

schemars/Cargo.toml

Lines changed: 45 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,10 @@ rust-version = "1.70"
1414

1515
[dependencies]
1616
schemars_derive = { version = "=1.0.0-alpha.17", optional = true, path = "../schemars_derive" }
17-
serde = { version = "1.0", default-features = false, features = ["alloc"]}
18-
serde_json = { version = "1.0.127", default-features = false, features = ["alloc"] }
17+
serde = { version = "1.0", default-features = false, features = ["alloc"] }
18+
serde_json = { version = "1.0.127", default-features = false, features = [
19+
"alloc",
20+
] }
1921
dyn-clone = "1.0"
2022
ref-cast = "1.0.22"
2123

@@ -25,6 +27,7 @@ bigdecimal04 = { version = "0.4", default-features = false, optional = true, pac
2527
bytes1 = { version = "1.0", default-features = false, optional = true, package = "bytes" }
2628
chrono04 = { version = "0.4", default-features = false, optional = true, package = "chrono" }
2729
either1 = { version = "1.3", default-features = false, optional = true, package = "either" }
30+
im15 = { version = "15.1", default-features = false, optional = true, package = "im" }
2831
indexmap2 = { version = "2.0", default-features = false, optional = true, package = "indexmap" }
2932
rust_decimal1 = { version = "1", default-features = false, optional = true, package = "rust_decimal" }
3033
semver1 = { version = "1.0.9", default-features = false, optional = true, package = "semver" }
@@ -44,18 +47,45 @@ garde = { version = "0.22", features = ["derive", "email", "regex", "url"] }
4447
validator = { version = "0.20", features = ["derive"] }
4548
regex = { version = "1.10.6", default-features = false }
4649

47-
arrayvec07 = { version = "0.7", default-features = false, features = ["serde"], package = "arrayvec"}
48-
bigdecimal04 = { version = "0.4", default-features = false, features = ["serde"], package = "bigdecimal" }
49-
bytes1 = { version = "1.0", default-features = false, features = ["serde"], package = "bytes" }
50-
chrono04 = { version = "0.4", default-features = false, features = ["serde"], package = "chrono" }
51-
either1 = { version = "1.3", default-features = false, features = ["serde"], package = "either" }
52-
indexmap2 = { version = "2.0", default-features = false, features = ["serde"], package = "indexmap" }
53-
rust_decimal1 = { version = "1", default-features = false, features = ["serde"], package = "rust_decimal" }
54-
semver1 = { version = "1.0.9", default-features = false, features = ["serde"], package = "semver" }
55-
smallvec1 = { version = "1.0", default-features = false, features = ["serde"], package = "smallvec" }
56-
smol_str02 = { version = "0.2.1", default-features = false, features = ["serde"], package = "smol_str" }
57-
url2 = { version = "2.0", default-features = false, features = ["serde"], package = "url" }
58-
uuid1 = { version = "1.0", default-features = false, features = ["serde"], package = "uuid" }
50+
arrayvec07 = { version = "0.7", default-features = false, features = [
51+
"serde",
52+
], package = "arrayvec" }
53+
bigdecimal04 = { version = "0.4", default-features = false, features = [
54+
"serde",
55+
], package = "bigdecimal" }
56+
bytes1 = { version = "1.0", default-features = false, features = [
57+
"serde",
58+
], package = "bytes" }
59+
chrono04 = { version = "0.4", default-features = false, features = [
60+
"serde",
61+
], package = "chrono" }
62+
either1 = { version = "1.3", default-features = false, features = [
63+
"serde",
64+
], package = "either" }
65+
im15 = { version = "15.1", default-features = false, features = [
66+
"serde",
67+
], package = "im" }
68+
indexmap2 = { version = "2.0", default-features = false, features = [
69+
"serde",
70+
], package = "indexmap" }
71+
rust_decimal1 = { version = "1", default-features = false, features = [
72+
"serde",
73+
], package = "rust_decimal" }
74+
semver1 = { version = "1.0.9", default-features = false, features = [
75+
"serde",
76+
], package = "semver" }
77+
smallvec1 = { version = "1.0", default-features = false, features = [
78+
"serde",
79+
], package = "smallvec" }
80+
smol_str02 = { version = "0.2.1", default-features = false, features = [
81+
"serde",
82+
], package = "smol_str" }
83+
url2 = { version = "2.0", default-features = false, features = [
84+
"serde",
85+
], package = "url" }
86+
uuid1 = { version = "1.0", default-features = false, features = [
87+
"serde",
88+
], package = "uuid" }
5989

6090
[features]
6191
default = ["derive", "std"]
@@ -70,7 +100,7 @@ derive = ["schemars_derive"]
70100
# Preserves order of properties inserted into a `Schema`.
71101
# When deriving `JsonSchema`, this ensures that the `properties` entires match
72102
# the order of the fields in the struct definition.
73-
preserve_order = ["serde_json/preserve_order"]
103+
preserve_order = ["serde_json/preserve_order"]
74104

75105
# Implements `JsonSchema` on `serde_json::value::RawValue`
76106
raw_value = ["serde_json/raw_value"]
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
use crate::JsonSchema;
2+
use im15;
3+
4+
forward_impl!((<T: JsonSchema> JsonSchema for im15::HashSet<T>) => std::collections::HashSet<T>);
5+
forward_impl!((<K, V: JsonSchema> JsonSchema for im15::HashMap<K, V>) => std::collections::HashMap<K, V>);
6+
forward_impl!((<T: JsonSchema> JsonSchema for im15::OrdSet<T>) => std::collections::HashSet<T>);
7+
forward_impl!((<K, V: JsonSchema> JsonSchema for im15::OrdMap<K, V>) => std::collections::HashMap<K, V>);
8+
forward_impl!((<T: JsonSchema> JsonSchema for im15::Vector<T>) => std::vec::Vec<T>);

schemars/src/json_schema_impls/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,9 @@ mod decimal;
7171
#[cfg(feature = "either1")]
7272
mod either1;
7373

74+
#[cfg(feature = "im15")]
75+
mod im15;
76+
7477
#[cfg(feature = "indexmap2")]
7578
mod indexmap2;
7679

0 commit comments

Comments
 (0)