@@ -155,6 +155,7 @@ pub fn strptime(s: &str, format: &str) -> Result<Tm, ~str> {
155
155
do_strptime ( s, format)
156
156
}
157
157
158
+ /// Formats the time according to the format string.
158
159
pub fn strftime ( format : & str , tm : Tm ) -> ~str {
159
160
do_strftime ( format, tm)
160
161
}
@@ -235,21 +236,6 @@ impl Tm {
235
236
}
236
237
237
238
priv fn do_strptime ( s : & str , format : & str ) -> Result < Tm , ~str > {
238
- type TmMut = {
239
- mut tm_sec : i32 ,
240
- mut tm_min : i32 ,
241
- mut tm_hour : i32 ,
242
- mut tm_mday : i32 ,
243
- mut tm_mon : i32 ,
244
- mut tm_year : i32 ,
245
- mut tm_wday : i32 ,
246
- mut tm_yday : i32 ,
247
- mut tm_isdst : i32 ,
248
- mut tm_gmtoff : i32 ,
249
- mut tm_zone : ~str ,
250
- mut tm_nsec : i32 ,
251
- } ;
252
-
253
239
fn match_str ( s : & str , pos : uint , needle : & str ) -> bool {
254
240
let mut i = pos;
255
241
for str:: each( needle) |ch| {
@@ -312,7 +298,7 @@ priv fn do_strptime(s: &str, format: &str) -> Result<Tm, ~str> {
312
298
}
313
299
}
314
300
315
- fn parse_type ( s : & str , pos : uint , ch : char , tm : & TmMut )
301
+ fn parse_type ( s : & str , pos : uint , ch : char , tm : & mut Tm_ )
316
302
-> Result < uint , ~str > {
317
303
match ch {
318
304
'A' => match match_strs ( s, pos, ~[
@@ -623,19 +609,19 @@ priv fn do_strptime(s: &str, format: &str) -> Result<Tm, ~str> {
623
609
}
624
610
625
611
do io:: with_str_reader ( str:: from_slice ( format) ) |rdr| {
626
- let tm = {
627
- mut tm_sec: 0_i32 ,
628
- mut tm_min: 0_i32 ,
629
- mut tm_hour: 0_i32 ,
630
- mut tm_mday: 0_i32 ,
631
- mut tm_mon: 0_i32 ,
632
- mut tm_year: 0_i32 ,
633
- mut tm_wday: 0_i32 ,
634
- mut tm_yday: 0_i32 ,
635
- mut tm_isdst: 0_i32 ,
636
- mut tm_gmtoff: 0_i32 ,
637
- mut tm_zone: ~"",
638
- mut tm_nsec: 0_i32 ,
612
+ let mut tm = {
613
+ tm_sec: 0_i32 ,
614
+ tm_min: 0_i32 ,
615
+ tm_hour: 0_i32 ,
616
+ tm_mday: 0_i32 ,
617
+ tm_mon: 0_i32 ,
618
+ tm_year: 0_i32 ,
619
+ tm_wday: 0_i32 ,
620
+ tm_yday: 0_i32 ,
621
+ tm_isdst: 0_i32 ,
622
+ tm_gmtoff: 0_i32 ,
623
+ tm_zone: ~"",
624
+ tm_nsec: 0_i32 ,
639
625
} ;
640
626
let mut pos = 0 u;
641
627
let len = str:: len ( s) ;
@@ -645,7 +631,7 @@ priv fn do_strptime(s: &str, format: &str) -> Result<Tm, ~str> {
645
631
let { ch, next} = str:: char_range_at ( s, pos) ;
646
632
647
633
match rdr. read_char ( ) {
648
- '%' => match parse_type ( s, pos, rdr. read_char ( ) , & tm) {
634
+ '%' => match parse_type ( s, pos, rdr. read_char ( ) , & mut tm) {
649
635
Ok ( next) => pos = next,
650
636
Err ( copy e) => { result = Err ( e) ; break ; }
651
637
} ,
0 commit comments