45 lines
821 B
Rust
45 lines
821 B
Rust
use crate::prelude::*;
|
|
|
|
mod a {
|
|
use super::*;
|
|
|
|
#[derive(JsonSchema, Deserialize, Serialize, Default)]
|
|
pub struct Config {
|
|
test: String,
|
|
}
|
|
}
|
|
|
|
mod b {
|
|
use super::*;
|
|
|
|
#[derive(JsonSchema, Deserialize, Serialize, Default)]
|
|
pub struct Config {
|
|
test2: String,
|
|
}
|
|
}
|
|
|
|
mod c {
|
|
use super::*;
|
|
|
|
#[derive(JsonSchema, Deserialize, Serialize, Default)]
|
|
#[schemars(rename = "Config")]
|
|
pub struct Configuration {
|
|
test3: String,
|
|
}
|
|
}
|
|
|
|
#[derive(JsonSchema, Deserialize, Serialize, Default)]
|
|
pub struct Config2 {
|
|
a_cfg: a::Config,
|
|
b_cfg: b::Config,
|
|
c_cfg: c::Configuration,
|
|
}
|
|
|
|
#[test]
|
|
fn same_name() {
|
|
test!(Config2)
|
|
.assert_snapshot()
|
|
.assert_allows_ser_roundtrip_default()
|
|
.assert_matches_de_roundtrip(arbitrary_values());
|
|
}
|