From 310d7f79d521b10a9d8e92f14bb6bfd3af584657 Mon Sep 17 00:00:00 2001 From: Dominic Date: Thu, 16 Apr 2020 23:48:54 +0200 Subject: [PATCH] fix state ownership issue when using the database feature --- gotham_restful_derive/src/method.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/gotham_restful_derive/src/method.rs b/gotham_restful_derive/src/method.rs index 2d44ed4..39c31a5 100644 --- a/gotham_restful_derive/src/method.rs +++ b/gotham_restful_derive/src/method.rs @@ -398,9 +398,14 @@ fn expand(method : Method, attrs : TokenStream, item : TokenStream) -> Result>::borrow_from(&#state_ident).clone(); }; block = quote! { - #repo_ident.run::<_, #ret, ()>(move |#conn_ident| { - Ok({#block}) - }).await.unwrap() + { + let #res_ident = #repo_ident.run::<_, (#krate::State, #ret), ()>(move |#conn_ident| { + let #res_ident = { #block }; + Ok((#state_ident, #res_ident)) + }).await.unwrap(); + #state_ident = #res_ident.0; + #res_ident.1 + } }; } if let Some(arg) = args.iter().filter(|arg| (*arg).ty.is_auth_status()).nth(0)