@@ -101,7 +101,7 @@ pub enum Kind {
101101}
102102
103103fn parse_req_with_deprecated (
104- name : & str ,
104+ name : InternedString ,
105105 req : & str ,
106106 extra : Option < ( PackageId , & Config ) > ,
107107) -> CargoResult < VersionReq > {
@@ -163,12 +163,13 @@ impl ser::Serialize for Kind {
163163impl Dependency {
164164 /// Attempt to create a `Dependency` from an entry in the manifest.
165165 pub fn parse (
166- name : & str ,
166+ name : impl Into < InternedString > ,
167167 version : Option < & str > ,
168168 source_id : SourceId ,
169169 inside : PackageId ,
170170 config : & Config ,
171171 ) -> CargoResult < Dependency > {
172+ let name = name. into ( ) ;
172173 let arg = Some ( ( inside, config) ) ;
173174 let ( specified_req, version_req) = match version {
174175 Some ( v) => ( true , parse_req_with_deprecated ( name, v, arg) ?) ,
@@ -187,10 +188,11 @@ impl Dependency {
187188
188189 /// Attempt to create a `Dependency` from an entry in the manifest.
189190 pub fn parse_no_deprecated (
190- name : & str ,
191+ name : impl Into < InternedString > ,
191192 version : Option < & str > ,
192193 source_id : SourceId ,
193194 ) -> CargoResult < Dependency > {
195+ let name = name. into ( ) ;
194196 let ( specified_req, version_req) = match version {
195197 Some ( v) => ( true , parse_req_with_deprecated ( name, v, None ) ?) ,
196198 None => ( false , VersionReq :: any ( ) ) ,
@@ -206,11 +208,11 @@ impl Dependency {
206208 Ok ( ret)
207209 }
208210
209- pub fn new_override ( name : & str , source_id : SourceId ) -> Dependency {
211+ pub fn new_override ( name : InternedString , source_id : SourceId ) -> Dependency {
210212 assert ! ( !name. is_empty( ) ) ;
211213 Dependency {
212214 inner : Rc :: new ( Inner {
213- name : InternedString :: new ( name ) ,
215+ name,
214216 source_id,
215217 registry_id : None ,
216218 req : VersionReq :: any ( ) ,
@@ -338,12 +340,9 @@ impl Dependency {
338340 /// Sets the list of features requested for the package.
339341 pub fn set_features (
340342 & mut self ,
341- features : impl IntoIterator < Item = impl AsRef < str > > ,
343+ features : impl IntoIterator < Item = impl Into < InternedString > > ,
342344 ) -> & mut Dependency {
343- Rc :: make_mut ( & mut self . inner ) . features = features
344- . into_iter ( )
345- . map ( |s| InternedString :: new ( s. as_ref ( ) ) )
346- . collect ( ) ;
345+ Rc :: make_mut ( & mut self . inner ) . features = features. into_iter ( ) . map ( |s| s. into ( ) ) . collect ( ) ;
347346 self
348347 }
349348
@@ -376,8 +375,11 @@ impl Dependency {
376375 self
377376 }
378377
379- pub fn set_explicit_name_in_toml ( & mut self , name : & str ) -> & mut Dependency {
380- Rc :: make_mut ( & mut self . inner ) . explicit_name_in_toml = Some ( InternedString :: new ( name) ) ;
378+ pub fn set_explicit_name_in_toml (
379+ & mut self ,
380+ name : impl Into < InternedString > ,
381+ ) -> & mut Dependency {
382+ Rc :: make_mut ( & mut self . inner ) . explicit_name_in_toml = Some ( name. into ( ) ) ;
381383 self
382384 }
383385
0 commit comments