mirror of
https://gitlab.com/msrd0/gotham-restful.git
synced 2025-02-22 20:52:27 +00:00
don't loose dependencies
This commit is contained in:
parent
74ea1b820b
commit
46372dee60
3 changed files with 14 additions and 5 deletions
|
@ -26,17 +26,16 @@ rest_resource!{Users, route => {
|
|||
}}
|
||||
|
||||
#[derive(Deserialize, OpenapiType, Serialize)]
|
||||
enum TestEnum
|
||||
struct TestStruct
|
||||
{
|
||||
Foo,
|
||||
Bar
|
||||
foo : String
|
||||
}
|
||||
|
||||
#[derive(Deserialize, OpenapiType, Serialize)]
|
||||
struct User
|
||||
{
|
||||
username : String,
|
||||
test : Option<TestEnum>
|
||||
test : Option<Vec<TestStruct>>
|
||||
}
|
||||
|
||||
impl ResourceReadAll<Success<Vec<Option<User>>>> for Users
|
||||
|
|
|
@ -156,7 +156,7 @@ impl<T : OpenapiType> OpenapiType for Vec<T>
|
|||
fn to_schema() -> OpenapiSchema
|
||||
{
|
||||
let schema = T::to_schema();
|
||||
let mut dependencies : IndexMap<String, OpenapiSchema> = IndexMap::new();
|
||||
let mut dependencies = schema.dependencies.clone();
|
||||
|
||||
let items = if let Some(name) = schema.name.clone()
|
||||
{
|
||||
|
|
|
@ -84,6 +84,16 @@ fn expand_field(field : &Field) -> TokenStream2
|
|||
required.push(stringify!(#ident).to_string());
|
||||
}
|
||||
|
||||
let keys : Vec<String> = schema.dependencies.keys().map(|k| k.to_string()).collect();
|
||||
for dep in keys
|
||||
{
|
||||
let dep_schema = schema.dependencies.swap_remove(&dep);
|
||||
if let Some(dep_schema) = dep_schema
|
||||
{
|
||||
dependencies.insert(dep, dep_schema);
|
||||
}
|
||||
}
|
||||
|
||||
match schema.name.clone() {
|
||||
Some(name) => {
|
||||
properties.insert(
|
||||
|
|
Loading…
Add table
Reference in a new issue