@@ -186,6 +186,7 @@ fn expand_struct(strct: &Struct) -> TokenStream {
186
186
187
187
fn expand_struct_operators ( strct : & Struct ) -> TokenStream {
188
188
let ident = & strct. name . rust ;
189
+ let generics = & strct. generics ;
189
190
let mut operators = TokenStream :: new ( ) ;
190
191
191
192
for derive in & strct. derives {
@@ -198,7 +199,7 @@ fn expand_struct_operators(strct: &Struct) -> TokenStream {
198
199
operators. extend ( quote_spanned ! { span=>
199
200
#[ doc( hidden) ]
200
201
#[ export_name = #link_name]
201
- extern "C" fn #local_name( lhs: & #ident, rhs: & #ident) -> bool {
202
+ extern "C" fn #local_name #generics ( lhs: & #ident #generics , rhs: & #ident #generics ) -> bool {
202
203
let __fn = concat!( "<" , module_path!( ) , #prevent_unwind_label) ;
203
204
:: cxx:: private:: prevent_unwind( __fn, || * lhs == * rhs)
204
205
}
@@ -211,7 +212,7 @@ fn expand_struct_operators(strct: &Struct) -> TokenStream {
211
212
operators. extend ( quote_spanned ! { span=>
212
213
#[ doc( hidden) ]
213
214
#[ export_name = #link_name]
214
- extern "C" fn #local_name( lhs: & #ident, rhs: & #ident) -> bool {
215
+ extern "C" fn #local_name #generics ( lhs: & #ident #generics , rhs: & #ident #generics ) -> bool {
215
216
let __fn = concat!( "<" , module_path!( ) , #prevent_unwind_label) ;
216
217
:: cxx:: private:: prevent_unwind( __fn, || * lhs != * rhs)
217
218
}
@@ -225,7 +226,7 @@ fn expand_struct_operators(strct: &Struct) -> TokenStream {
225
226
operators. extend ( quote_spanned ! { span=>
226
227
#[ doc( hidden) ]
227
228
#[ export_name = #link_name]
228
- extern "C" fn #local_name( lhs: & #ident, rhs: & #ident) -> bool {
229
+ extern "C" fn #local_name #generics ( lhs: & #ident #generics , rhs: & #ident #generics ) -> bool {
229
230
let __fn = concat!( "<" , module_path!( ) , #prevent_unwind_label) ;
230
231
:: cxx:: private:: prevent_unwind( __fn, || * lhs < * rhs)
231
232
}
@@ -237,7 +238,7 @@ fn expand_struct_operators(strct: &Struct) -> TokenStream {
237
238
operators. extend ( quote_spanned ! { span=>
238
239
#[ doc( hidden) ]
239
240
#[ export_name = #link_name]
240
- extern "C" fn #local_name( lhs: & #ident, rhs: & #ident) -> bool {
241
+ extern "C" fn #local_name #generics ( lhs: & #ident #generics , rhs: & #ident #generics ) -> bool {
241
242
let __fn = concat!( "<" , module_path!( ) , #prevent_unwind_label) ;
242
243
:: cxx:: private:: prevent_unwind( __fn, || * lhs <= * rhs)
243
244
}
@@ -250,7 +251,7 @@ fn expand_struct_operators(strct: &Struct) -> TokenStream {
250
251
operators. extend ( quote_spanned ! { span=>
251
252
#[ doc( hidden) ]
252
253
#[ export_name = #link_name]
253
- extern "C" fn #local_name( lhs: & #ident, rhs: & #ident) -> bool {
254
+ extern "C" fn #local_name #generics ( lhs: & #ident #generics , rhs: & #ident #generics ) -> bool {
254
255
let __fn = concat!( "<" , module_path!( ) , #prevent_unwind_label) ;
255
256
:: cxx:: private:: prevent_unwind( __fn, || * lhs > * rhs)
256
257
}
@@ -262,7 +263,7 @@ fn expand_struct_operators(strct: &Struct) -> TokenStream {
262
263
operators. extend ( quote_spanned ! { span=>
263
264
#[ doc( hidden) ]
264
265
#[ export_name = #link_name]
265
- extern "C" fn #local_name( lhs: & #ident, rhs: & #ident) -> bool {
266
+ extern "C" fn #local_name #generics ( lhs: & #ident #generics , rhs: & #ident #generics ) -> bool {
266
267
let __fn = concat!( "<" , module_path!( ) , #prevent_unwind_label) ;
267
268
:: cxx:: private:: prevent_unwind( __fn, || * lhs >= * rhs)
268
269
}
@@ -277,7 +278,7 @@ fn expand_struct_operators(strct: &Struct) -> TokenStream {
277
278
#[ doc( hidden) ]
278
279
#[ export_name = #link_name]
279
280
#[ allow( clippy:: cast_possible_truncation) ]
280
- extern "C" fn #local_name( this: & #ident) -> usize {
281
+ extern "C" fn #local_name #generics ( this: & #ident #generics ) -> usize {
281
282
let __fn = concat!( "<" , module_path!( ) , #prevent_unwind_label) ;
282
283
:: cxx:: private:: prevent_unwind( __fn, || :: cxx:: private:: hash( this) )
283
284
}
0 commit comments