@@ -54,9 +54,7 @@ impl<'a> StructMessage<'a> {
54
54
let contract_type = & source. self_ty ;
55
55
56
56
let parsed = Self :: parse_struct_message ( source, ty) ;
57
- let Some ( ( method, msg_attr) ) = parsed else {
58
- return None ;
59
- } ;
57
+ let ( method, msg_attr) = parsed?;
60
58
61
59
let function_name = & method. sig . ident ;
62
60
let fields = process_fields ( & method. sig , & mut generics_checker) ;
@@ -609,130 +607,13 @@ impl<'a> MsgVariant<'a> {
609
607
}
610
608
}
611
609
612
- pub fn emit_multitest_proxy_methods_declaration < Generic > (
613
- & self ,
614
- msg_ty : & MsgType ,
615
- custom_msg : & Type ,
616
- mt_app : & Type ,
617
- error_type : & Type ,
618
- generics : & [ & Generic ] ,
619
- ) -> TokenStream
620
- where
621
- Generic : ToTokens ,
622
- {
623
- let sylvia = crate_module ( ) ;
624
- let Self {
625
- name,
626
- fields,
627
- stripped_return_type,
628
- ..
629
- } = self ;
630
-
631
- let params = fields. iter ( ) . map ( |field| field. emit_method_field ( ) ) ;
632
- let name = Ident :: new ( & name. to_string ( ) . to_case ( Case :: Snake ) , name. span ( ) ) ;
633
- let enum_name = msg_ty. emit_msg_name ( ) ;
634
- let enum_name: Type = if !generics. is_empty ( ) {
635
- parse_quote ! { #enum_name :: < #( #generics, ) * > }
636
- } else {
637
- parse_quote ! { #enum_name }
638
- } ;
639
-
640
- match msg_ty {
641
- MsgType :: Exec => quote ! {
642
- #[ track_caller]
643
- fn #name ( & self , #( #params, ) * ) -> #sylvia :: multitest:: ExecProxy :: < #error_type, #enum_name, #mt_app, #custom_msg>;
644
- } ,
645
- MsgType :: Migrate => quote ! {
646
- #[ track_caller]
647
- fn #name ( & self , #( #params, ) * ) -> #sylvia :: multitest:: MigrateProxy :: < #error_type, #enum_name, #mt_app, #custom_msg>;
648
- } ,
649
- MsgType :: Query => quote ! {
650
- fn #name ( & self , #( #params, ) * ) -> Result <#stripped_return_type, #error_type>;
651
- } ,
652
- MsgType :: Sudo => quote ! {
653
- fn #name ( & self , #( #params, ) * ) -> Result < #sylvia :: cw_multi_test:: AppResponse , #error_type>;
654
- } ,
655
- _ => quote ! { } ,
656
- }
657
- }
658
-
659
- pub fn emit_multitest_proxy_methods < Generic > (
610
+ pub fn emit_mt_method_definition (
660
611
& self ,
661
612
msg_ty : & MsgType ,
662
613
custom_msg : & Type ,
663
614
mt_app : & Type ,
664
615
error_type : & Type ,
665
- generics : & [ & Generic ] ,
666
- ) -> TokenStream
667
- where
668
- Generic : ToTokens ,
669
- {
670
- let sylvia = crate_module ( ) ;
671
- let Self {
672
- name,
673
- fields,
674
- stripped_return_type,
675
- ..
676
- } = self ;
677
-
678
- let params = fields. iter ( ) . map ( |field| field. emit_method_field ( ) ) ;
679
- let arguments = fields. iter ( ) . map ( MsgField :: name) ;
680
- let name = Ident :: new ( & name. to_string ( ) . to_case ( Case :: Snake ) , name. span ( ) ) ;
681
- let enum_name = msg_ty. emit_msg_name ( ) ;
682
- let enum_name: Type = if !generics. is_empty ( ) {
683
- parse_quote ! { #enum_name :: < #( #generics, ) * > }
684
- } else {
685
- parse_quote ! { #enum_name }
686
- } ;
687
-
688
- match msg_ty {
689
- MsgType :: Exec => quote ! {
690
- #[ track_caller]
691
- fn #name ( & self , #( #params, ) * ) -> #sylvia :: multitest:: ExecProxy :: < #error_type, #enum_name, #mt_app, #custom_msg> {
692
- let msg = #enum_name :: #name ( #( #arguments) , * ) ;
693
-
694
- #sylvia :: multitest:: ExecProxy :: new( & self . contract_addr, msg, & self . app)
695
- }
696
- } ,
697
- MsgType :: Migrate => quote ! {
698
- #[ track_caller]
699
- fn #name ( & self , #( #params, ) * ) -> #sylvia :: multitest:: MigrateProxy :: < #error_type, #enum_name, #mt_app, #custom_msg> {
700
- let msg = #enum_name :: new( #( #arguments) , * ) ;
701
-
702
- #sylvia :: multitest:: MigrateProxy :: new( & self . contract_addr, msg, & self . app)
703
- }
704
- } ,
705
- MsgType :: Query => quote ! {
706
- fn #name ( & self , #( #params, ) * ) -> Result <#stripped_return_type, #error_type> {
707
- let msg = #enum_name :: #name ( #( #arguments) , * ) ;
708
-
709
- ( * self . app)
710
- . querier( )
711
- . query_wasm_smart( self . contract_addr. clone( ) , & msg)
712
- . map_err( Into :: into)
713
- }
714
- } ,
715
- MsgType :: Sudo => quote ! {
716
- fn #name ( & self , #( #params, ) * ) -> Result < #sylvia :: cw_multi_test:: AppResponse , #error_type> {
717
- let msg = #enum_name :: #name ( #( #arguments) , * ) ;
718
-
719
- ( * self . app)
720
- . app_mut( )
721
- . wasm_sudo( self . contract_addr. clone( ) , & msg)
722
- . map_err( |err| err. downcast( ) . unwrap( ) )
723
- }
724
- } ,
725
- _ => quote ! { } ,
726
- }
727
- }
728
-
729
- pub fn emit_interface_multitest_proxy_methods (
730
- & self ,
731
- msg_ty : & MsgType ,
732
- custom_msg : & Type ,
733
- mt_app : & Type ,
734
- error_type : & Type ,
735
- interface_api : & TokenStream ,
616
+ api : & TokenStream ,
736
617
) -> TokenStream {
737
618
let sylvia = crate_module ( ) ;
738
619
let Self {
@@ -753,16 +634,16 @@ impl<'a> MsgVariant<'a> {
753
634
match msg_ty {
754
635
MsgType :: Exec => quote ! {
755
636
#[ track_caller]
756
- fn #name ( & self , #( #params, ) * ) -> #sylvia :: multitest:: ExecProxy :: <Self :: #error_type, #interface_api :: #type_name, #mt_app, #custom_msg> {
757
- let msg = #interface_api :: #type_name :: #name ( #( #arguments) , * ) ;
637
+ fn #name ( & self , #( #params, ) * ) -> #sylvia :: multitest:: ExecProxy :: < #error_type, #api :: #type_name, #mt_app, #custom_msg> {
638
+ let msg = #api :: #type_name :: #name ( #( #arguments) , * ) ;
758
639
759
640
#sylvia :: multitest:: ExecProxy :: new( & self . contract_addr, msg, & self . app)
760
641
}
761
642
} ,
762
643
MsgType :: Query => {
763
644
quote ! {
764
- fn #name ( & self , #( #params, ) * ) -> Result <#return_type, Self :: #error_type> {
765
- let msg = #interface_api :: #type_name :: #name ( #( #arguments) , * ) ;
645
+ fn #name ( & self , #( #params, ) * ) -> Result <#return_type, #error_type> {
646
+ let msg = #api :: #type_name :: #name ( #( #arguments) , * ) ;
766
647
767
648
( * self . app)
768
649
. querier( )
@@ -772,25 +653,33 @@ impl<'a> MsgVariant<'a> {
772
653
}
773
654
}
774
655
MsgType :: Sudo => quote ! {
775
- fn #name ( & self , #( #params, ) * ) -> Result < #sylvia :: cw_multi_test:: AppResponse , Self :: #error_type> {
776
- let msg = #interface_api :: #type_name :: #name ( #( #arguments) , * ) ;
656
+ fn #name ( & self , #( #params, ) * ) -> Result < #sylvia :: cw_multi_test:: AppResponse , #error_type> {
657
+ let msg = #api :: #type_name :: #name ( #( #arguments) , * ) ;
777
658
778
659
( * self . app)
779
660
. app_mut( )
780
661
. wasm_sudo( self . contract_addr. clone( ) , & msg)
781
662
. map_err( |err| err. downcast( ) . unwrap( ) )
782
663
}
783
664
} ,
665
+ MsgType :: Migrate => quote ! {
666
+ #[ track_caller]
667
+ fn #name ( & self , #( #params, ) * ) -> #sylvia :: multitest:: MigrateProxy :: < #error_type, #api :: #type_name , #mt_app, #custom_msg> {
668
+ let msg = #api :: #type_name :: new( #( #arguments) , * ) ;
669
+
670
+ #sylvia :: multitest:: MigrateProxy :: new( & self . contract_addr, msg, & self . app)
671
+ }
672
+ } ,
784
673
_ => quote ! { } ,
785
674
}
786
675
}
787
676
788
- pub fn emit_proxy_methods_declarations (
677
+ pub fn emit_mt_method_declaration (
789
678
& self ,
790
679
msg_ty : & MsgType ,
791
680
custom_msg : & Type ,
792
681
error_type : & Type ,
793
- interface_enum : & TokenStream ,
682
+ api : & TokenStream ,
794
683
) -> TokenStream {
795
684
let sylvia = crate_module ( ) ;
796
685
let Self {
@@ -809,15 +698,19 @@ impl<'a> MsgVariant<'a> {
809
698
810
699
match msg_ty {
811
700
MsgType :: Exec => quote ! {
812
- fn #name ( & self , #( #params, ) * ) -> #sylvia :: multitest:: ExecProxy :: < Self :: #error_type, #interface_enum :: #type_name, MtApp , #custom_msg>;
701
+ fn #name ( & self , #( #params, ) * ) -> #sylvia :: multitest:: ExecProxy :: < #error_type, #api :: #type_name, MtApp , #custom_msg>;
813
702
} ,
814
703
MsgType :: Query => {
815
704
quote ! {
816
- fn #name ( & self , #( #params, ) * ) -> Result <#return_type, Self :: #error_type>;
705
+ fn #name ( & self , #( #params, ) * ) -> Result <#return_type, #error_type>;
817
706
}
818
707
}
819
708
MsgType :: Sudo => quote ! {
820
- fn #name ( & self , #( #params, ) * ) -> Result < #sylvia :: cw_multi_test:: AppResponse , Self :: #error_type>;
709
+ fn #name ( & self , #( #params, ) * ) -> Result < #sylvia :: cw_multi_test:: AppResponse , #error_type>;
710
+ } ,
711
+ MsgType :: Migrate => quote ! {
712
+ #[ track_caller]
713
+ fn #name ( & self , #( #params, ) * ) -> #sylvia :: multitest:: MigrateProxy :: < #error_type, #api :: #type_name, MtApp , #custom_msg>;
821
714
} ,
822
715
_ => quote ! { } ,
823
716
}
@@ -940,82 +833,31 @@ where
940
833
}
941
834
}
942
835
943
- pub fn emit_multitest_proxy_methods_declaration (
836
+ pub fn emit_mt_method_definitions (
944
837
& self ,
945
838
custom_msg : & Type ,
946
839
mt_app : & Type ,
947
840
error_type : & Type ,
841
+ api : & TokenStream ,
948
842
) -> Vec < TokenStream > {
949
843
self . variants
950
844
. iter ( )
951
845
. map ( |variant| {
952
- variant. emit_multitest_proxy_methods_declaration (
953
- & self . msg_ty ,
954
- custom_msg,
955
- mt_app,
956
- error_type,
957
- & self . used_generics ,
958
- )
846
+ variant. emit_mt_method_definition ( & self . msg_ty , custom_msg, mt_app, error_type, api)
959
847
} )
960
848
. collect ( )
961
849
}
962
850
963
- pub fn emit_multitest_proxy_methods (
851
+ pub fn emit_mt_method_declarations (
964
852
& self ,
965
853
custom_msg : & Type ,
966
- mt_app : & Type ,
967
854
error_type : & Type ,
855
+ api : & TokenStream ,
968
856
) -> Vec < TokenStream > {
969
857
self . variants
970
858
. iter ( )
971
859
. map ( |variant| {
972
- variant. emit_multitest_proxy_methods (
973
- & self . msg_ty ,
974
- custom_msg,
975
- mt_app,
976
- error_type,
977
- & self . used_generics ,
978
- )
979
- } )
980
- . collect ( )
981
- }
982
-
983
- pub fn emit_interface_multitest_proxy_methods (
984
- & self ,
985
- custom_msg : & Type ,
986
- mt_app : & Type ,
987
- error_type : & Type ,
988
- interface_api : & TokenStream ,
989
- ) -> Vec < TokenStream > {
990
- self . variants
991
- . iter ( )
992
- . map ( |variant| {
993
- variant. emit_interface_multitest_proxy_methods (
994
- & self . msg_ty ,
995
- custom_msg,
996
- mt_app,
997
- error_type,
998
- interface_api,
999
- )
1000
- } )
1001
- . collect ( )
1002
- }
1003
-
1004
- pub fn emit_proxy_methods_declarations (
1005
- & self ,
1006
- custom_msg : & Type ,
1007
- error_type : & Type ,
1008
- interface_enum : & TokenStream ,
1009
- ) -> Vec < TokenStream > {
1010
- self . variants
1011
- . iter ( )
1012
- . map ( |variant| {
1013
- variant. emit_proxy_methods_declarations (
1014
- & self . msg_ty ,
1015
- custom_msg,
1016
- error_type,
1017
- interface_enum,
1018
- )
860
+ variant. emit_mt_method_declaration ( & self . msg_ty , custom_msg, error_type, api)
1019
861
} )
1020
862
. collect ( )
1021
863
}
0 commit comments