@@ -50,7 +50,7 @@ use std::strbuf::StrBuf;
50
50
#[ allow( missing_doc) ]
51
51
pub enum Identifier {
52
52
Numeric ( uint ) ,
53
- AlphaNumeric ( ~ str )
53
+ AlphaNumeric ( StrBuf )
54
54
}
55
55
56
56
impl cmp:: Ord for Identifier {
@@ -158,7 +158,7 @@ impl cmp::Ord for Version {
158
158
}
159
159
160
160
fn take_nonempty_prefix < T : Iterator < char > > ( rdr : & mut T , pred: |char| -> bool)
161
- -> ( ~ str , Option < char > ) {
161
+ -> ( StrBuf , Option < char > ) {
162
162
let mut buf = StrBuf :: new ( ) ;
163
163
let mut ch = rdr. next ( ) ;
164
164
loop {
@@ -171,21 +171,21 @@ fn take_nonempty_prefix<T:Iterator<char>>(rdr: &mut T, pred: |char| -> bool)
171
171
}
172
172
}
173
173
}
174
- ( buf. into_owned ( ) , ch)
174
+ ( buf, ch)
175
175
}
176
176
177
177
fn take_num < T : Iterator < char > > ( rdr : & mut T ) -> Option < ( uint , Option < char > ) > {
178
178
let ( s, ch) = take_nonempty_prefix ( rdr, char:: is_digit) ;
179
- match from_str :: < uint > ( s) {
179
+ match from_str :: < uint > ( s. as_slice ( ) ) {
180
180
None => None ,
181
181
Some ( i) => Some ( ( i, ch) )
182
182
}
183
183
}
184
184
185
185
fn take_ident < T : Iterator < char > > ( rdr : & mut T ) -> Option < ( Identifier , Option < char > ) > {
186
186
let ( s, ch) = take_nonempty_prefix ( rdr, char:: is_alphanumeric) ;
187
- if s. chars ( ) . all ( char:: is_digit) {
188
- match from_str :: < uint > ( s) {
187
+ if s. as_slice ( ) . chars ( ) . all ( char:: is_digit) {
188
+ match from_str :: < uint > ( s. as_slice ( ) ) {
189
189
None => None ,
190
190
Some ( i) => Some ( ( Numeric ( i) , ch) )
191
191
}
@@ -308,52 +308,52 @@ fn test_parse() {
308
308
major: 1 u,
309
309
minor: 2 u,
310
310
patch: 3 u,
311
- pre: vec!( AlphaNumeric ( "alpha1" . to_owned ( ) ) ) ,
311
+ pre: vec!( AlphaNumeric ( "alpha1" . to_strbuf ( ) ) ) ,
312
312
build: vec!( ) ,
313
313
} ) ) ;
314
314
assert ! ( parse( " 1.2.3-alpha1 " ) == Some ( Version {
315
315
major: 1 u,
316
316
minor: 2 u,
317
317
patch: 3 u,
318
- pre: vec!( AlphaNumeric ( "alpha1" . to_owned ( ) ) ) ,
318
+ pre: vec!( AlphaNumeric ( "alpha1" . to_strbuf ( ) ) ) ,
319
319
build: vec!( )
320
320
} ) ) ;
321
321
assert ! ( parse( "1.2.3+build5" ) == Some ( Version {
322
322
major: 1 u,
323
323
minor: 2 u,
324
324
patch: 3 u,
325
325
pre: vec!( ) ,
326
- build: vec!( AlphaNumeric ( "build5" . to_owned ( ) ) )
326
+ build: vec!( AlphaNumeric ( "build5" . to_strbuf ( ) ) )
327
327
} ) ) ;
328
328
assert ! ( parse( " 1.2.3+build5 " ) == Some ( Version {
329
329
major: 1 u,
330
330
minor: 2 u,
331
331
patch: 3 u,
332
332
pre: vec!( ) ,
333
- build: vec!( AlphaNumeric ( "build5" . to_owned ( ) ) )
333
+ build: vec!( AlphaNumeric ( "build5" . to_strbuf ( ) ) )
334
334
} ) ) ;
335
335
assert ! ( parse( "1.2.3-alpha1+build5" ) == Some ( Version {
336
336
major: 1 u,
337
337
minor: 2 u,
338
338
patch: 3 u,
339
- pre: vec!( AlphaNumeric ( "alpha1" . to_owned ( ) ) ) ,
340
- build: vec!( AlphaNumeric ( "build5" . to_owned ( ) ) )
339
+ pre: vec!( AlphaNumeric ( "alpha1" . to_strbuf ( ) ) ) ,
340
+ build: vec!( AlphaNumeric ( "build5" . to_strbuf ( ) ) )
341
341
} ) ) ;
342
342
assert ! ( parse( " 1.2.3-alpha1+build5 " ) == Some ( Version {
343
343
major: 1 u,
344
344
minor: 2 u,
345
345
patch: 3 u,
346
- pre: vec!( AlphaNumeric ( "alpha1" . to_owned ( ) ) ) ,
347
- build: vec!( AlphaNumeric ( "build5" . to_owned ( ) ) )
346
+ pre: vec!( AlphaNumeric ( "alpha1" . to_strbuf ( ) ) ) ,
347
+ build: vec!( AlphaNumeric ( "build5" . to_strbuf ( ) ) )
348
348
} ) ) ;
349
349
assert ! ( parse( "1.2.3-1.alpha1.9+build5.7.3aedf " ) == Some ( Version {
350
350
major: 1 u,
351
351
minor: 2 u,
352
352
patch: 3 u,
353
- pre: vec!( Numeric ( 1 ) , AlphaNumeric ( "alpha1" . to_owned ( ) ) , Numeric ( 9 ) ) ,
354
- build: vec!( AlphaNumeric ( "build5" . to_owned ( ) ) ,
353
+ pre: vec!( Numeric ( 1 ) , AlphaNumeric ( "alpha1" . to_strbuf ( ) ) , Numeric ( 9 ) ) ,
354
+ build: vec!( AlphaNumeric ( "build5" . to_strbuf ( ) ) ,
355
355
Numeric ( 7 ) ,
356
- AlphaNumeric ( "3aedf" . to_owned ( ) ) )
356
+ AlphaNumeric ( "3aedf" . to_strbuf ( ) ) )
357
357
} ) ) ;
358
358
359
359
}
@@ -377,10 +377,14 @@ fn test_ne() {
377
377
378
378
#[ test]
379
379
fn test_show ( ) {
380
- assert_eq ! ( format!( "{}" , parse( "1.2.3" ) . unwrap( ) ) , "1.2.3" . to_owned( ) ) ;
381
- assert_eq ! ( format!( "{}" , parse( "1.2.3-alpha1" ) . unwrap( ) ) , "1.2.3-alpha1" . to_owned( ) ) ;
382
- assert_eq ! ( format!( "{}" , parse( "1.2.3+build.42" ) . unwrap( ) ) , "1.2.3+build.42" . to_owned( ) ) ;
383
- assert_eq ! ( format!( "{}" , parse( "1.2.3-alpha1+42" ) . unwrap( ) ) , "1.2.3-alpha1+42" . to_owned( ) ) ;
380
+ assert_eq ! ( format_strbuf!( "{}" , parse( "1.2.3" ) . unwrap( ) ) ,
381
+ "1.2.3" . to_strbuf( ) ) ;
382
+ assert_eq ! ( format_strbuf!( "{}" , parse( "1.2.3-alpha1" ) . unwrap( ) ) ,
383
+ "1.2.3-alpha1" . to_strbuf( ) ) ;
384
+ assert_eq ! ( format_strbuf!( "{}" , parse( "1.2.3+build.42" ) . unwrap( ) ) ,
385
+ "1.2.3+build.42" . to_strbuf( ) ) ;
386
+ assert_eq ! ( format_strbuf!( "{}" , parse( "1.2.3-alpha1+42" ) . unwrap( ) ) ,
387
+ "1.2.3-alpha1+42" . to_strbuf( ) ) ;
384
388
}
385
389
386
390
#[ test]
0 commit comments