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)