@@ -1093,15 +1093,19 @@ fn generate_setter(
10931093 )
10941094 }
10951095 type_:: Data ( ( ) ) => {
1096- setter_interior. push ( Line ( format ! (
1097- "self.builder.reborrow().get_pointer_field({offset}).set_data(value);"
1096+ // The data::Reader impl of SetterInput never fails, so we can unwrap().
1097+ setter_interior. push ( Line ( fmt ! ( ctx,
1098+ "{capnp}::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field({offset}), value, false).unwrap()"
10981099 ) ) ) ;
10991100 initter_interior. push ( Line ( format ! (
11001101 "self.builder.get_pointer_field({offset}).init_data(size)"
11011102 ) ) ) ;
11021103 initter_params. push ( "size: u32" ) ;
11031104 (
1104- Some ( fmt ! ( ctx, "{capnp}::data::Reader<'_>" ) ) ,
1105+ Some ( fmt ! (
1106+ ctx,
1107+ "impl {capnp}::traits::SetterInput<{capnp}::data::Owned>"
1108+ ) ) ,
11051109 Some ( fmt ! ( ctx, "{capnp}::data::Builder<'a>" ) ) ,
11061110 )
11071111 }
@@ -1176,7 +1180,11 @@ fn generate_setter(
11761180 Line ( fmt ! ( ctx, "{capnp}::traits::SetterInput::set_pointer_builder(self.builder.reborrow().get_pointer_field({offset}), value, false)" ) ) ) ;
11771181
11781182 (
1179- Some ( typ. type_string ( ctx, Leaf :: Reader ( "'_" ) ) ?) ,
1183+ Some ( fmt ! (
1184+ ctx,
1185+ "impl {capnp}::traits::SetterInput<{}>" ,
1186+ typ. type_string( ctx, Leaf :: Owned ) ?
1187+ ) ) ,
11801188 Some ( typ. type_string ( ctx, Leaf :: Builder ( "'a" ) ) ?) ,
11811189 )
11821190 }
0 commit comments