@@ -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 ,
@@ -59,13 +59,9 @@ impl<'d> ResolvedDependency<'d> {
59
59
dependencies : package
60
60
. dependencies
61
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 ( ) ) )
62
+ . map ( |d| Cow :: Borrowed ( d) )
68
63
. collect ( ) ,
64
+ suggests : package. suggests . iter ( ) . map ( |d| Cow :: Borrowed ( d) ) . collect ( ) ,
69
65
// TODO: what should we do here?
70
66
kind : if package. force_source {
71
67
PackageType :: Source
@@ -113,16 +109,8 @@ impl<'d> ResolvedDependency<'d> {
113
109
name : Cow :: Borrowed ( & package. name ) ,
114
110
version : Cow :: Borrowed ( & package. version ) ,
115
111
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 ( ) ,
112
+ dependencies : deps. direct . iter ( ) . map ( |d| Cow :: Borrowed ( * d) ) . collect ( ) ,
113
+ suggests : deps. suggests . iter ( ) . map ( |d| Cow :: Borrowed ( * d) ) . collect ( ) ,
126
114
kind : package_type,
127
115
force_source,
128
116
install_suggests,
@@ -148,15 +136,11 @@ impl<'d> ResolvedDependency<'d> {
148
136
let deps = package. dependencies_to_install ( install_suggests) ;
149
137
150
138
let res = Self {
151
- dependencies : deps
152
- . direct
153
- . iter ( )
154
- . map ( |d| Cow :: Owned ( d. name ( ) . to_string ( ) ) )
155
- . collect ( ) ,
139
+ dependencies : deps. direct . iter ( ) . map ( |& d| Cow :: Owned ( d. clone ( ) ) ) . collect ( ) ,
156
140
suggests : deps
157
141
. suggests
158
142
. iter ( )
159
- . map ( |s | Cow :: Owned ( s . name ( ) . to_string ( ) ) )
143
+ . map ( |& d | Cow :: Owned ( d . clone ( ) ) )
160
144
. collect ( ) ,
161
145
kind : PackageType :: Source ,
162
146
force_source : true ,
@@ -183,15 +167,11 @@ impl<'d> ResolvedDependency<'d> {
183
167
) -> ( Self , InstallationDependencies ) {
184
168
let deps = package. dependencies_to_install ( install_suggests) ;
185
169
let res = Self {
186
- dependencies : deps
187
- . direct
188
- . iter ( )
189
- . map ( |d| Cow :: Owned ( d. name ( ) . to_string ( ) ) )
190
- . collect ( ) ,
170
+ dependencies : deps. direct . iter ( ) . map ( |& d| Cow :: Owned ( d. clone ( ) ) ) . collect ( ) ,
191
171
suggests : deps
192
172
. suggests
193
173
. iter ( )
194
- . map ( |s | Cow :: Owned ( s . name ( ) . to_string ( ) ) )
174
+ . map ( |& d | Cow :: Owned ( d . clone ( ) ) )
195
175
. collect ( ) ,
196
176
kind : PackageType :: Source ,
197
177
force_source : true ,
@@ -219,15 +199,11 @@ impl<'d> ResolvedDependency<'d> {
219
199
) -> ( Self , InstallationDependencies ) {
220
200
let deps = package. dependencies_to_install ( install_suggests) ;
221
201
let res = Self {
222
- dependencies : deps
223
- . direct
224
- . iter ( )
225
- . map ( |d| Cow :: Owned ( d. name ( ) . to_string ( ) ) )
226
- . collect ( ) ,
202
+ dependencies : deps. direct . iter ( ) . map ( |& d| Cow :: Owned ( d. clone ( ) ) ) . collect ( ) ,
227
203
suggests : deps
228
204
. suggests
229
205
. iter ( )
230
- . map ( |s | Cow :: Owned ( s . name ( ) . to_string ( ) ) )
206
+ . map ( |& d | Cow :: Owned ( d . clone ( ) ) )
231
207
. collect ( ) ,
232
208
kind,
233
209
force_source : false ,
0 commit comments