@@ -3,7 +3,7 @@ use serde::Deserialize;
3
3
use crate :: cache:: InstallationStatus ;
4
4
use crate :: http:: HttpError ;
5
5
use crate :: lockfile:: { LockedPackage , Source } ;
6
- use crate :: package:: { InstallationDependencies , Package , PackageRemote , PackageType } ;
6
+ use crate :: package:: { Dependency , InstallationDependencies , Package , PackageRemote , PackageType } ;
7
7
use crate :: resolver:: QueueItem ;
8
8
use crate :: { Http , HttpDownload , Version , VersionRequirement } ;
9
9
use std:: borrow:: Cow ;
@@ -20,8 +20,8 @@ pub struct ResolvedDependency<'d> {
20
20
pub ( crate ) name : Cow < ' d , str > ,
21
21
pub ( crate ) version : Cow < ' d , Version > ,
22
22
pub ( crate ) source : Source ,
23
- pub ( crate ) dependencies : Vec < Cow < ' d , str > > ,
24
- pub ( crate ) suggests : Vec < Cow < ' d , str > > ,
23
+ pub ( crate ) dependencies : Vec < Cow < ' d , Dependency > > ,
24
+ pub ( crate ) suggests : Vec < Cow < ' d , Dependency > > ,
25
25
pub ( crate ) force_source : bool ,
26
26
pub ( crate ) install_suggests : bool ,
27
27
pub ( crate ) kind : PackageType ,
@@ -56,16 +56,8 @@ impl<'d> ResolvedDependency<'d> {
56
56
name : Cow :: Borrowed ( & package. name ) ,
57
57
version : Cow :: Owned ( Version :: from_str ( package. version . as_str ( ) ) . unwrap ( ) ) ,
58
58
source : package. source . clone ( ) ,
59
- dependencies : package
60
- . dependencies
61
- . iter ( )
62
- . map ( |d| Cow :: Borrowed ( d. as_str ( ) ) )
63
- . collect ( ) ,
64
- suggests : package
65
- . suggests
66
- . iter ( )
67
- . map ( |s| Cow :: Borrowed ( s. as_str ( ) ) )
68
- . collect ( ) ,
59
+ dependencies : package. dependencies . iter ( ) . map ( Cow :: Borrowed ) . collect ( ) ,
60
+ suggests : package. suggests . iter ( ) . map ( Cow :: Borrowed ) . collect ( ) ,
69
61
// TODO: what should we do here?
70
62
kind : if package. force_source {
71
63
PackageType :: Source
@@ -113,16 +105,8 @@ impl<'d> ResolvedDependency<'d> {
113
105
name : Cow :: Borrowed ( & package. name ) ,
114
106
version : Cow :: Borrowed ( & package. version ) ,
115
107
source,
116
- dependencies : deps
117
- . direct
118
- . iter ( )
119
- . map ( |d| Cow :: Borrowed ( d. name ( ) ) )
120
- . collect ( ) ,
121
- suggests : deps
122
- . suggests
123
- . iter ( )
124
- . map ( |d| Cow :: Borrowed ( d. name ( ) ) )
125
- . collect ( ) ,
108
+ dependencies : deps. direct . iter ( ) . map ( |d| Cow :: Borrowed ( * d) ) . collect ( ) ,
109
+ suggests : deps. suggests . iter ( ) . map ( |d| Cow :: Borrowed ( * d) ) . collect ( ) ,
126
110
kind : package_type,
127
111
force_source,
128
112
install_suggests,
@@ -148,15 +132,11 @@ impl<'d> ResolvedDependency<'d> {
148
132
let deps = package. dependencies_to_install ( install_suggests) ;
149
133
150
134
let res = Self {
151
- dependencies : deps
152
- . direct
153
- . iter ( )
154
- . map ( |d| Cow :: Owned ( d. name ( ) . to_string ( ) ) )
155
- . collect ( ) ,
135
+ dependencies : deps. direct . iter ( ) . map ( |& d| Cow :: Owned ( d. clone ( ) ) ) . collect ( ) ,
156
136
suggests : deps
157
137
. suggests
158
138
. iter ( )
159
- . map ( |s | Cow :: Owned ( s . name ( ) . to_string ( ) ) )
139
+ . map ( |& d | Cow :: Owned ( d . clone ( ) ) )
160
140
. collect ( ) ,
161
141
kind : PackageType :: Source ,
162
142
force_source : true ,
@@ -183,15 +163,11 @@ impl<'d> ResolvedDependency<'d> {
183
163
) -> ( Self , InstallationDependencies ) {
184
164
let deps = package. dependencies_to_install ( install_suggests) ;
185
165
let res = Self {
186
- dependencies : deps
187
- . direct
188
- . iter ( )
189
- . map ( |d| Cow :: Owned ( d. name ( ) . to_string ( ) ) )
190
- . collect ( ) ,
166
+ dependencies : deps. direct . iter ( ) . map ( |& d| Cow :: Owned ( d. clone ( ) ) ) . collect ( ) ,
191
167
suggests : deps
192
168
. suggests
193
169
. iter ( )
194
- . map ( |s | Cow :: Owned ( s . name ( ) . to_string ( ) ) )
170
+ . map ( |& d | Cow :: Owned ( d . clone ( ) ) )
195
171
. collect ( ) ,
196
172
kind : PackageType :: Source ,
197
173
force_source : true ,
@@ -219,15 +195,11 @@ impl<'d> ResolvedDependency<'d> {
219
195
) -> ( Self , InstallationDependencies ) {
220
196
let deps = package. dependencies_to_install ( install_suggests) ;
221
197
let res = Self {
222
- dependencies : deps
223
- . direct
224
- . iter ( )
225
- . map ( |d| Cow :: Owned ( d. name ( ) . to_string ( ) ) )
226
- . collect ( ) ,
198
+ dependencies : deps. direct . iter ( ) . map ( |& d| Cow :: Owned ( d. clone ( ) ) ) . collect ( ) ,
227
199
suggests : deps
228
200
. suggests
229
201
. iter ( )
230
- . map ( |s | Cow :: Owned ( s . name ( ) . to_string ( ) ) )
202
+ . map ( |& d | Cow :: Owned ( d . clone ( ) ) )
231
203
. collect ( ) ,
232
204
kind,
233
205
force_source : false ,
0 commit comments