@@ -198,7 +198,7 @@ impl IndexSummary {
198
198
#[ derive( Deserialize , Serialize ) ]
199
199
pub struct IndexPackage < ' a > {
200
200
/// Name of the package.
201
- pub name : InternedString ,
201
+ pub name : Cow < ' a , str > ,
202
202
/// The version of this dependency.
203
203
pub vers : Version ,
204
204
/// All kinds of direct dependencies of the package, including dev and
@@ -263,7 +263,11 @@ impl IndexPackage<'_> {
263
263
fn to_summary ( & self , source_id : SourceId ) -> CargoResult < Summary > {
264
264
// ****CAUTION**** Please be extremely careful with returning errors, see
265
265
// `IndexSummary::parse` for details
266
- let pkgid = PackageId :: new ( self . name . into ( ) , self . vers . clone ( ) , source_id) ;
266
+ let pkgid = PackageId :: new (
267
+ InternedString :: new ( & self . name ) ,
268
+ self . vers . clone ( ) ,
269
+ source_id,
270
+ ) ;
267
271
let deps = self
268
272
. deps
269
273
. iter ( )
@@ -288,8 +292,8 @@ impl IndexPackage<'_> {
288
292
}
289
293
290
294
#[ derive( Deserialize , Serialize ) ]
291
- struct IndexPackageMinimum {
292
- name : InternedString ,
295
+ struct IndexPackageMinimum < ' a > {
296
+ name : Cow < ' a , str > ,
293
297
vers : Version ,
294
298
}
295
299
@@ -759,7 +763,7 @@ impl IndexSummary {
759
763
Ok ( ( index, summary) ) => ( index, summary, true ) ,
760
764
Err ( err) => {
761
765
let Ok ( IndexPackageMinimum { name, vers } ) =
762
- serde_json:: from_slice :: < IndexPackageMinimum > ( line)
766
+ serde_json:: from_slice :: < IndexPackageMinimum < ' _ > > ( line)
763
767
else {
764
768
// If we can't recover, prefer the original error
765
769
return Err ( err) ;
0 commit comments