@@ -614,45 +614,55 @@ impl StructBindGenerator {
614
614
write_str ! ( self , " }" ) ;
615
615
}
616
616
617
- fn generate_long_match_args ( & mut self ) {
618
- write_str ! ( self , " #[classattr]" ) ;
619
- write_str ! (
620
- self ,
621
- " fn __match_args__(py: Python) -> Bound<pyo3::types::PyTuple> {"
622
- ) ;
623
- write_str ! ( self , " pyo3::types::PyTuple::new(py, [" ) ;
617
+ fn generate_long_args ( & mut self ) {
618
+ let funcs = [ "match_args" , "slots" ] ;
619
+ // let funcs = ["match_args"];
624
620
625
- for variable_info in & self . types {
626
- write_fmt ! ( self , " \" {}\" ," , variable_info. name) ;
621
+ for func in funcs {
622
+ write_str ! ( self , " #[classattr]" ) ;
623
+ write_fmt ! (
624
+ self ,
625
+ " fn __{func}__(py: Python) -> Bound<pyo3::types::PyTuple> {{"
626
+ ) ;
627
+ write_str ! ( self , " pyo3::types::PyTuple::new(py, [" ) ;
628
+
629
+ for variable_info in & self . types {
630
+ write_fmt ! ( self , " \" {}\" ," , variable_info. name) ;
631
+ }
632
+
633
+ write_str ! ( self , " ]).unwrap()" ) ;
634
+ write_str ! ( self , " }\n " ) ;
627
635
}
628
-
629
- write_str ! ( self , " ]).unwrap()" ) ;
630
- write_str ! ( self , " }" ) ;
631
636
}
632
637
633
- fn generate_match_args ( & mut self ) {
638
+ fn generate_args ( & mut self ) {
634
639
if self . types . is_empty ( ) {
635
640
return ;
636
641
}
637
642
638
643
if self . types . len ( ) > 12 {
639
- self . generate_long_match_args ( ) ;
644
+ self . generate_long_args ( ) ;
640
645
return ;
641
646
}
642
647
643
648
let sig_parts: Vec < _ > = repeat ( "&'static str" ) . take ( self . types . len ( ) ) . collect ( ) ;
644
649
let sig = sig_parts. join ( ", " ) ;
645
650
646
- write_str ! ( self , " #[classattr]" ) ;
647
- write_fmt ! ( self , " fn __match_args__() -> ({sig},) {{" , ) ;
648
- write_str ! ( self , " (" ) ;
651
+ let funcs = [ "match_args" , "slots" ] ;
652
+ // let funcs = ["match_args"];
649
653
650
- for variable_info in & self . types {
651
- write_fmt ! ( self , " \" {}\" ," , variable_info. name) ;
654
+ for func in funcs {
655
+ write_str ! ( self , " #[classattr]" ) ;
656
+ write_fmt ! ( self , " fn __{func}__() -> ({sig},) {{" , ) ;
657
+ write_str ! ( self , " (" ) ;
658
+
659
+ for variable_info in & self . types {
660
+ write_fmt ! ( self , " \" {}\" ," , variable_info. name) ;
661
+ }
662
+
663
+ write_str ! ( self , " )" ) ;
664
+ write_str ! ( self , " }\n " ) ;
652
665
}
653
-
654
- write_str ! ( self , " )" ) ;
655
- write_str ! ( self , " }" ) ;
656
666
}
657
667
658
668
fn generate_pack_method ( & mut self ) {
@@ -1186,8 +1196,7 @@ impl Generator for StructBindGenerator {
1186
1196
self . generate_repr_method ( ) ;
1187
1197
write_str ! ( self , "" ) ;
1188
1198
1189
- self . generate_match_args ( ) ;
1190
- write_str ! ( self , "" ) ;
1199
+ self . generate_args ( ) ;
1191
1200
1192
1201
self . generate_pack_method ( ) ;
1193
1202
write_str ! ( self , "" ) ;
0 commit comments