@@ -122,33 +122,18 @@ pub struct CrossToml {
122122}
123123
124124impl CrossToml {
125- /// Parses the [`CrossToml`] from all of the config sources
126- pub fn parse_str (
127- cargo_toml : & str ,
128- cross_toml : & str ,
129- msg_info : & mut MessageInfo ,
130- ) -> Result < ( Self , BTreeSet < String > ) > {
131- let ( cross_toml, mut unused) = Self :: parse_from_cross_str ( cross_toml, msg_info) ?;
132-
133- if let Some ( ( cargo_toml, u_cargo) ) = Self :: parse_from_cargo_str ( cargo_toml, msg_info) ? {
134- unused. extend ( u_cargo) ;
135- Ok ( ( cargo_toml. merge ( cross_toml) ?, unused) )
136- } else {
137- Ok ( ( cross_toml, unused) )
138- }
139- }
140-
141125 /// Parses the [`CrossToml`] from a string
142126 pub fn parse_from_cross_str (
143127 toml_str : & str ,
128+ source : Option < & str > ,
144129 msg_info : & mut MessageInfo ,
145130 ) -> Result < ( Self , BTreeSet < String > ) > {
146131 let tomld = toml:: Deserializer :: new ( toml_str) ;
147- Self :: parse_from_deserializer ( tomld, None , msg_info)
132+ Self :: parse_from_deserializer ( tomld, source , msg_info)
148133 }
149134
150135 /// Parses the [`CrossToml`] from a string containing the Cargo.toml contents
151- pub fn parse_from_cargo_str (
136+ pub fn parse_from_cargo_package_str (
152137 cargo_toml_str : & str ,
153138 msg_info : & mut MessageInfo ,
154139 ) -> Result < Option < ( Self , BTreeSet < String > ) > > {
@@ -170,7 +155,7 @@ impl CrossToml {
170155 }
171156
172157 /// Parses the [`CrossToml`] from a [`Deserializer`]
173- fn parse_from_deserializer < ' de , D > (
158+ pub fn parse_from_deserializer < ' de , D > (
174159 deserializer : D ,
175160 source : Option < & str > ,
176161 msg_info : & mut MessageInfo ,
@@ -601,7 +586,7 @@ mod tests {
601586 targets : HashMap :: new ( ) ,
602587 build : CrossBuildConfig :: default ( ) ,
603588 } ;
604- let ( parsed_cfg, unused) = CrossToml :: parse_from_cross_str ( "" , & mut m ! ( ) ) ?;
589+ let ( parsed_cfg, unused) = CrossToml :: parse_from_cross_str ( "" , None , & mut m ! ( ) ) ?;
605590
606591 assert_eq ! ( parsed_cfg, cfg) ;
607592 assert ! ( unused. is_empty( ) ) ;
@@ -636,7 +621,7 @@ mod tests {
636621 volumes = ["VOL1_ARG", "VOL2_ARG"]
637622 passthrough = ["VAR1", "VAR2"]
638623 "# ;
639- let ( parsed_cfg, unused) = CrossToml :: parse_from_cross_str ( test_str, & mut m ! ( ) ) ?;
624+ let ( parsed_cfg, unused) = CrossToml :: parse_from_cross_str ( test_str, None , & mut m ! ( ) ) ?;
640625
641626 assert_eq ! ( parsed_cfg, cfg) ;
642627 assert ! ( unused. is_empty( ) ) ;
@@ -708,7 +693,7 @@ mod tests {
708693 version = "2.17"
709694 image = "zig:local"
710695 "# ;
711- let ( parsed_cfg, unused) = CrossToml :: parse_from_cross_str ( test_str, & mut m ! ( ) ) ?;
696+ let ( parsed_cfg, unused) = CrossToml :: parse_from_cross_str ( test_str, None , & mut m ! ( ) ) ?;
712697
713698 assert_eq ! ( parsed_cfg, cfg) ;
714699 assert ! ( unused. is_empty( ) ) ;
@@ -794,7 +779,7 @@ mod tests {
794779 [target.aarch64-unknown-linux-gnu.env]
795780 volumes = ["VOL"]
796781 "# ;
797- let ( parsed_cfg, unused) = CrossToml :: parse_from_cross_str ( test_str, & mut m ! ( ) ) ?;
782+ let ( parsed_cfg, unused) = CrossToml :: parse_from_cross_str ( test_str, None , & mut m ! ( ) ) ?;
798783
799784 assert_eq ! ( parsed_cfg, cfg) ;
800785 assert ! ( unused. is_empty( ) ) ;
@@ -813,7 +798,7 @@ mod tests {
813798 cross = "1.2.3"
814799 "# ;
815800
816- let res = CrossToml :: parse_from_cargo_str ( test_str, & mut m ! ( ) ) ?;
801+ let res = CrossToml :: parse_from_cargo_package_str ( test_str, & mut m ! ( ) ) ?;
817802 assert ! ( res. is_none( ) ) ;
818803
819804 Ok ( ( ) )
@@ -849,7 +834,9 @@ mod tests {
849834 xargo = true
850835 "# ;
851836
852- if let Some ( ( parsed_cfg, _unused) ) = CrossToml :: parse_from_cargo_str ( test_str, & mut m ! ( ) ) ? {
837+ if let Some ( ( parsed_cfg, _unused) ) =
838+ CrossToml :: parse_from_cargo_package_str ( test_str, & mut m ! ( ) ) ?
839+ {
853840 assert_eq ! ( parsed_cfg, cfg) ;
854841 } else {
855842 panic ! ( "Parsing result is None" ) ;
@@ -876,7 +863,7 @@ mod tests {
876863 zig = "2.17"
877864 "# ;
878865
879- let ( cfg, _) = CrossToml :: parse_from_cross ( cfg, & mut m ! ( ) ) ?;
866+ let ( cfg, _) = CrossToml :: parse_from_cross_str ( cfg, None , & mut m ! ( ) ) ?;
880867 serde_json:: from_value :: < CrossToml > ( serde_json:: to_value ( cfg) ?) ?;
881868 Ok ( ( ) )
882869 }
@@ -980,9 +967,9 @@ mod tests {
980967 "# ;
981968
982969 // Parses configs
983- let ( cfg1, _) = CrossToml :: parse_from_cross_str ( cfg1_str, & mut m ! ( ) ) ?;
984- let ( cfg2, _) = CrossToml :: parse_from_cross_str ( cfg2_str, & mut m ! ( ) ) ?;
985- let ( cfg_expected, _) = CrossToml :: parse_from_cross_str ( cfg_expected_str, & mut m ! ( ) ) ?;
970+ let ( cfg1, _) = CrossToml :: parse_from_cross_str ( cfg1_str, None , & mut m ! ( ) ) ?;
971+ let ( cfg2, _) = CrossToml :: parse_from_cross_str ( cfg2_str, None , & mut m ! ( ) ) ?;
972+ let ( cfg_expected, _) = CrossToml :: parse_from_cross_str ( cfg_expected_str, None , & mut m ! ( ) ) ?;
986973
987974 // Merges config and compares
988975 let cfg_merged = cfg1. merge ( cfg2) ?;
@@ -1039,7 +1026,7 @@ mod tests {
10391026 [build]
10401027 pre-build = ["echo Hello World"]
10411028 "# ;
1042- let ( toml, unused) = CrossToml :: parse_from_cross_str ( toml_str, & mut m ! ( ) ) ?;
1029+ let ( toml, unused) = CrossToml :: parse_from_cross_str ( toml_str, None , & mut m ! ( ) ) ?;
10431030 assert ! ( unused. is_empty( ) ) ;
10441031 assert ! ( matches!(
10451032 toml. pre_build( & Target :: new_built_in( "aarch64-unknown-linux-gnu" ) ) ,
0 commit comments