mirror of
https://gitlab.com/msrd0/gotham-restful.git
synced 2025-02-23 04:52:28 +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)]
|
#[derive(Deserialize, OpenapiType, Serialize)]
|
||||||
enum TestEnum
|
struct TestStruct
|
||||||
{
|
{
|
||||||
Foo,
|
foo : String
|
||||||
Bar
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Deserialize, OpenapiType, Serialize)]
|
#[derive(Deserialize, OpenapiType, Serialize)]
|
||||||
struct User
|
struct User
|
||||||
{
|
{
|
||||||
username : String,
|
username : String,
|
||||||
test : Option<TestEnum>
|
test : Option<Vec<TestStruct>>
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ResourceReadAll<Success<Vec<Option<User>>>> for Users
|
impl ResourceReadAll<Success<Vec<Option<User>>>> for Users
|
||||||
|
|
|
@ -156,7 +156,7 @@ impl<T : OpenapiType> OpenapiType for Vec<T>
|
||||||
fn to_schema() -> OpenapiSchema
|
fn to_schema() -> OpenapiSchema
|
||||||
{
|
{
|
||||||
let schema = T::to_schema();
|
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()
|
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());
|
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() {
|
match schema.name.clone() {
|
||||||
Some(name) => {
|
Some(name) => {
|
||||||
properties.insert(
|
properties.insert(
|
||||||
|
|
Loading…
Add table
Reference in a new issue