@@ -85,12 +85,12 @@ fn create_set(
85
85
PySet {
86
86
elements : RefCell :: new ( elements) ,
87
87
} ,
88
- PySet :: class ( vm) . into_object ( ) ,
88
+ PySet :: class ( vm) ,
89
89
) )
90
90
} else if objtype:: issubclass ( & cls, & vm. ctx . frozenset_type ( ) ) {
91
91
Ok ( PyObject :: new (
92
92
PyFrozenSet { elements : elements } ,
93
- PyFrozenSet :: class ( vm) . into_object ( ) ,
93
+ PyFrozenSet :: class ( vm) ,
94
94
) )
95
95
} else {
96
96
Err ( vm. new_type_error ( format ! ( "{} is not a subtype of set or frozenset" , cls) ) )
@@ -593,127 +593,71 @@ pub fn init(context: &PyContext) {
593
593
set(iterable) -> new set object\n \n \
594
594
Build an unordered collection of unique elements.";
595
595
596
- context. set_attr ( set_type, "__contains__" , context. new_rustfunc ( set_contains) ) ;
597
- context. set_attr ( set_type, "__len__" , context. new_rustfunc ( set_len) ) ;
598
- context. set_attr ( set_type, "__new__" , context. new_rustfunc ( set_new) ) ;
599
- context. set_attr ( set_type, "__repr__" , context. new_rustfunc ( set_repr) ) ;
600
- context. set_attr ( set_type, "__eq__" , context. new_rustfunc ( set_eq) ) ;
601
- context. set_attr ( set_type, "__ge__" , context. new_rustfunc ( set_ge) ) ;
602
- context. set_attr ( set_type, "__gt__" , context. new_rustfunc ( set_gt) ) ;
603
- context. set_attr ( set_type, "__le__" , context. new_rustfunc ( set_le) ) ;
604
- context. set_attr ( set_type, "__lt__" , context. new_rustfunc ( set_lt) ) ;
605
- context. set_attr ( set_type, "issubset" , context. new_rustfunc ( set_le) ) ;
606
- context. set_attr ( set_type, "issuperset" , context. new_rustfunc ( set_ge) ) ;
607
- context. set_attr ( set_type, "union" , context. new_rustfunc ( set_union) ) ;
608
- context. set_attr ( set_type, "__or__" , context. new_rustfunc ( set_union) ) ;
609
- context. set_attr (
610
- set_type,
611
- "intersection" ,
612
- context. new_rustfunc ( set_intersection) ,
613
- ) ;
614
- context. set_attr ( set_type, "__and__" , context. new_rustfunc ( set_intersection) ) ;
615
- context. set_attr ( set_type, "difference" , context. new_rustfunc ( set_difference) ) ;
616
- context. set_attr ( set_type, "__sub__" , context. new_rustfunc ( set_difference) ) ;
617
- context. set_attr (
618
- set_type,
619
- "symmetric_difference" ,
620
- context. new_rustfunc ( set_symmetric_difference) ,
621
- ) ;
622
- context. set_attr (
623
- set_type,
624
- "__xor__" ,
625
- context. new_rustfunc ( set_symmetric_difference) ,
626
- ) ;
627
- context. set_attr ( set_type, "__doc__" , context. new_str ( set_doc. to_string ( ) ) ) ;
628
- context. set_attr ( set_type, "add" , context. new_rustfunc ( set_add) ) ;
629
- context. set_attr ( set_type, "remove" , context. new_rustfunc ( set_remove) ) ;
630
- context. set_attr ( set_type, "discard" , context. new_rustfunc ( set_discard) ) ;
631
- context. set_attr ( set_type, "clear" , context. new_rustfunc ( set_clear) ) ;
632
- context. set_attr ( set_type, "copy" , context. new_rustfunc ( set_copy) ) ;
633
- context. set_attr ( set_type, "pop" , context. new_rustfunc ( set_pop) ) ;
634
- context. set_attr ( set_type, "update" , context. new_rustfunc ( set_update) ) ;
635
- context. set_attr ( set_type, "__ior__" , context. new_rustfunc ( set_ior) ) ;
636
- context. set_attr (
637
- set_type,
638
- "intersection_update" ,
639
- context. new_rustfunc ( set_intersection_update) ,
640
- ) ;
641
- context. set_attr ( set_type, "__iand__" , context. new_rustfunc ( set_iand) ) ;
642
- context. set_attr (
643
- set_type,
644
- "difference_update" ,
645
- context. new_rustfunc ( set_difference_update) ,
646
- ) ;
647
- context. set_attr ( set_type, "__isub__" , context. new_rustfunc ( set_isub) ) ;
648
- context. set_attr (
649
- set_type,
650
- "symmetric_difference_update" ,
651
- context. new_rustfunc ( set_symmetric_difference_update) ,
652
- ) ;
653
- context. set_attr ( set_type, "__ixor__" , context. new_rustfunc ( set_ixor) ) ;
654
- context. set_attr ( set_type, "__iter__" , context. new_rustfunc ( set_iter) ) ;
596
+ extend_class ! ( context, set_type, {
597
+ "__contains__" => context. new_rustfunc( set_contains) ,
598
+ "__len__" => context. new_rustfunc( set_len) ,
599
+ "__new__" => context. new_rustfunc( set_new) ,
600
+ "__repr__" => context. new_rustfunc( set_repr) ,
601
+ "__eq__" => context. new_rustfunc( set_eq) ,
602
+ "__ge__" => context. new_rustfunc( set_ge) ,
603
+ "__gt__" => context. new_rustfunc( set_gt) ,
604
+ "__le__" => context. new_rustfunc( set_le) ,
605
+ "__lt__" => context. new_rustfunc( set_lt) ,
606
+ "issubset" => context. new_rustfunc( set_le) ,
607
+ "issuperset" => context. new_rustfunc( set_ge) ,
608
+ "union" => context. new_rustfunc( set_union) ,
609
+ "__or__" => context. new_rustfunc( set_union) ,
610
+ "intersection" => context. new_rustfunc( set_intersection) ,
611
+ "__and__" => context. new_rustfunc( set_intersection) ,
612
+ "difference" => context. new_rustfunc( set_difference) ,
613
+ "__sub__" => context. new_rustfunc( set_difference) ,
614
+ "symmetric_difference" => context. new_rustfunc( set_symmetric_difference) ,
615
+ "__xor__" => context. new_rustfunc( set_symmetric_difference) ,
616
+ "__doc__" => context. new_str( set_doc. to_string( ) ) ,
617
+ "add" => context. new_rustfunc( set_add) ,
618
+ "remove" => context. new_rustfunc( set_remove) ,
619
+ "discard" => context. new_rustfunc( set_discard) ,
620
+ "clear" => context. new_rustfunc( set_clear) ,
621
+ "copy" => context. new_rustfunc( set_copy) ,
622
+ "pop" => context. new_rustfunc( set_pop) ,
623
+ "update" => context. new_rustfunc( set_update) ,
624
+ "__ior__" => context. new_rustfunc( set_ior) ,
625
+ "intersection_update" => context. new_rustfunc( set_intersection_update) ,
626
+ "__iand__" => context. new_rustfunc( set_iand) ,
627
+ "difference_update" => context. new_rustfunc( set_difference_update) ,
628
+ "__isub__" => context. new_rustfunc( set_isub) ,
629
+ "symmetric_difference_update" => context. new_rustfunc( set_symmetric_difference_update) ,
630
+ "__ixor__" => context. new_rustfunc( set_ixor) ,
631
+ "__iter__" => context. new_rustfunc( set_iter)
632
+ } ) ;
655
633
656
634
let frozenset_type = & context. frozenset_type ;
657
635
658
636
let frozenset_doc = "frozenset() -> empty frozenset object\n \
659
637
frozenset(iterable) -> frozenset object\n \n \
660
638
Build an immutable unordered collection of unique elements.";
661
639
662
- context. set_attr ( frozenset_type, "__new__" , context. new_rustfunc ( set_new) ) ;
663
- context. set_attr ( frozenset_type, "__eq__" , context. new_rustfunc ( set_eq) ) ;
664
- context. set_attr ( frozenset_type, "__ge__" , context. new_rustfunc ( set_ge) ) ;
665
- context. set_attr ( frozenset_type, "__gt__" , context. new_rustfunc ( set_gt) ) ;
666
- context. set_attr ( frozenset_type, "__le__" , context. new_rustfunc ( set_le) ) ;
667
- context. set_attr ( frozenset_type, "__lt__" , context. new_rustfunc ( set_lt) ) ;
668
- context. set_attr ( frozenset_type, "issubset" , context. new_rustfunc ( set_le) ) ;
669
- context. set_attr ( frozenset_type, "issuperset" , context. new_rustfunc ( set_ge) ) ;
670
- context. set_attr ( frozenset_type, "union" , context. new_rustfunc ( set_union) ) ;
671
- context. set_attr ( frozenset_type, "__or__" , context. new_rustfunc ( set_union) ) ;
672
- context. set_attr (
673
- frozenset_type,
674
- "intersection" ,
675
- context. new_rustfunc ( set_intersection) ,
676
- ) ;
677
- context. set_attr (
678
- frozenset_type,
679
- "__and__" ,
680
- context. new_rustfunc ( set_intersection) ,
681
- ) ;
682
- context. set_attr (
683
- frozenset_type,
684
- "difference" ,
685
- context. new_rustfunc ( set_difference) ,
686
- ) ;
687
- context. set_attr (
688
- frozenset_type,
689
- "__sub__" ,
690
- context. new_rustfunc ( set_difference) ,
691
- ) ;
692
- context. set_attr (
693
- frozenset_type,
694
- "symmetric_difference" ,
695
- context. new_rustfunc ( set_symmetric_difference) ,
696
- ) ;
697
- context. set_attr (
698
- frozenset_type,
699
- "__xor__" ,
700
- context. new_rustfunc ( set_symmetric_difference) ,
701
- ) ;
702
- context. set_attr (
703
- frozenset_type,
704
- "__contains__" ,
705
- context. new_rustfunc ( set_contains) ,
706
- ) ;
707
- context. set_attr ( frozenset_type, "__len__" , context. new_rustfunc ( set_len) ) ;
708
- context. set_attr (
709
- frozenset_type,
710
- "__doc__" ,
711
- context. new_str ( frozenset_doc. to_string ( ) ) ,
712
- ) ;
713
- context. set_attr (
714
- frozenset_type,
715
- "__repr__" ,
716
- context. new_rustfunc ( frozenset_repr) ,
717
- ) ;
718
- context. set_attr ( frozenset_type, "copy" , context. new_rustfunc ( set_copy) ) ;
640
+ extend_class ! ( context, frozenset_type, {
641
+ "__new__" => context. new_rustfunc( set_new) ,
642
+ "__eq__" => context. new_rustfunc( set_eq) ,
643
+ "__ge__" => context. new_rustfunc( set_ge) ,
644
+ "__gt__" => context. new_rustfunc( set_gt) ,
645
+ "__le__" => context. new_rustfunc( set_le) ,
646
+ "__lt__" => context. new_rustfunc( set_lt) ,
647
+ "issubset" => context. new_rustfunc( set_le) ,
648
+ "issuperset" => context. new_rustfunc( set_ge) ,
649
+ "union" => context. new_rustfunc( set_union) ,
650
+ "__or__" => context. new_rustfunc( set_union) ,
651
+ "intersection" => context. new_rustfunc( set_intersection) ,
652
+ "__and__" => context. new_rustfunc( set_intersection) ,
653
+ "difference" => context. new_rustfunc( set_difference) ,
654
+ "__sub__" => context. new_rustfunc( set_difference) ,
655
+ "symmetric_difference" => context. new_rustfunc( set_symmetric_difference) ,
656
+ "__xor__" => context. new_rustfunc( set_symmetric_difference) ,
657
+ "__contains__" => context. new_rustfunc( set_contains) ,
658
+ "__len__" => context. new_rustfunc( set_len) ,
659
+ "__doc__" => context. new_str( frozenset_doc. to_string( ) ) ,
660
+ "__repr__" => context. new_rustfunc( frozenset_repr) ,
661
+ "copy" => context. new_rustfunc( set_copy)
662
+ } ) ;
719
663
}
0 commit comments