@@ -147,7 +147,7 @@ impl FormDeriveBuilder {
147147
148148 self . fields_as_context_from_request
149149 . push ( quote ! ( stringify!( #field_ident) => {
150- #crate_ident:: form:: FormField :: set_value( & mut self . #field_ident, value)
150+ #crate_ident:: form:: FormField :: set_value( & mut self . #field_ident, value) . await ?
151151 } ) ) ;
152152
153153 let val_ident = format_ident ! ( "val_{}" , field_ident) ;
@@ -160,7 +160,7 @@ impl FormDeriveBuilder {
160160 quote ! ( #field_ident: #val_ident. expect( "Errors should have been returned by now" ) ) ,
161161 ) ;
162162 self . fields_as_to_context
163- . push ( quote ! ( context. #field_ident. set_value( :: std :: borrow :: Cow :: Owned ( self . #field_ident. to_field_value( ) ) ) ) ) ;
163+ . push ( quote ! ( context. #field_ident. set_value( #crate_ident :: form :: FormFieldValue :: new_text ( self . #field_ident. to_field_value( ) ) ) . await . expect ( "Setting value from text should never fail" ) ) ) ;
164164
165165 self . fields_as_errors
166166 . push ( quote ! ( #field_ident: Vec <#crate_ident:: form:: FormFieldValidationError >) ) ;
@@ -215,7 +215,7 @@ impl FormDeriveBuilder {
215215 }
216216 }
217217
218- fn to_context(
218+ async fn to_context(
219219 & self
220220 ) -> Self :: Context {
221221 use #crate_ident:: form:: FormContext ;
@@ -272,6 +272,7 @@ impl FormDeriveBuilder {
272272 #( #fields_as_struct_fields, ) *
273273 }
274274
275+ #[ #crate_ident:: __private:: async_trait]
275276 #[ automatically_derived]
276277 impl #crate_ident:: form:: FormContext for #context_struct_name {
277278 fn new( ) -> Self {
@@ -289,10 +290,10 @@ impl FormDeriveBuilder {
289290 Box :: new( [ #( #fields_as_dyn_field_ref, ) * ] . into_iter( ) )
290291 }
291292
292- fn set_value(
293+ async fn set_value(
293294 & mut self ,
294295 field_id: & str ,
295- value: :: std :: borrow :: Cow < str >,
296+ value: #crate_ident :: form :: FormFieldValue < ' _ >,
296297 ) -> :: core:: result:: Result <( ) , #crate_ident:: form:: FormFieldValidationError > {
297298 match field_id {
298299 #( #fields_as_context_from_request, ) *
0 commit comments