diff options
| author | Michael Sullivan <sully@msully.net> | 2012-07-13 22:57:48 -0700 |
|---|---|---|
| committer | Michael Sullivan <sully@msully.net> | 2012-07-14 01:03:43 -0700 |
| commit | 92743dc2a6a14d042d4b278e4a4dde5ca198c886 (patch) | |
| tree | 2626211c99906387257880f127f96fee66a0bb4e /src/libstd/time.rs | |
| parent | 5c5065e8bdd1a7b28810fea4b940577ff17c112c (diff) | |
| download | rust-92743dc2a6a14d042d4b278e4a4dde5ca198c886.tar.gz rust-92743dc2a6a14d042d4b278e4a4dde5ca198c886.zip | |
Move the world over to using the new style string literals and types. Closes #2907.
Diffstat (limited to 'src/libstd/time.rs')
| -rw-r--r-- | src/libstd/time.rs | 591 |
1 files changed, 296 insertions, 295 deletions
diff --git a/src/libstd/time.rs b/src/libstd/time.rs index 3f3749cb064..553592b10bd 100644 --- a/src/libstd/time.rs +++ b/src/libstd/time.rs @@ -76,7 +76,7 @@ type tm = { tm_yday: i32, // days since January 1 ~[0-365] tm_isdst: i32, // Daylight Savings Time flag tm_gmtoff: i32, // offset from UTC in seconds - tm_zone: str, // timezone abbreviation + tm_zone: ~str, // timezone abbreviation tm_nsec: i32, // nanoseconds }; @@ -92,7 +92,7 @@ fn empty_tm() -> tm { tm_yday: 0_i32, tm_isdst: 0_i32, tm_gmtoff: 0_i32, - tm_zone: "", + tm_zone: ~"", tm_nsec: 0_i32, } } @@ -124,7 +124,7 @@ fn now() -> tm { } /// Parses the time from the string according to the format string. -fn strptime(s: str, format: str) -> result<tm, str> { +fn strptime(s: ~str, format: ~str) -> result<tm, ~str> { type tm_mut = { mut tm_sec: i32, mut tm_min: i32, @@ -136,11 +136,11 @@ fn strptime(s: str, format: str) -> result<tm, str> { mut tm_yday: i32, mut tm_isdst: i32, mut tm_gmtoff: i32, - mut tm_zone: str, + mut tm_zone: ~str, mut tm_nsec: i32, }; - fn match_str(s: str, pos: uint, needle: str) -> bool { + fn match_str(s: ~str, pos: uint, needle: ~str) -> bool { let mut i = pos; for str::each(needle) |ch| { if s[i] != ch { @@ -151,7 +151,7 @@ fn strptime(s: str, format: str) -> result<tm, str> { ret true; } - fn match_strs(s: str, pos: uint, strs: ~[(str, i32)]) + fn match_strs(s: ~str, pos: uint, strs: ~[(~str, i32)]) -> option<(i32, uint)> { let mut i = 0u; let len = vec::len(strs); @@ -167,7 +167,7 @@ fn strptime(s: str, format: str) -> result<tm, str> { none } - fn match_digits(s: str, pos: uint, digits: uint, ws: bool) + fn match_digits(s: ~str, pos: uint, digits: uint, ws: bool) -> option<(i32, uint)> { let mut pos = pos; let mut value = 0_i32; @@ -190,7 +190,7 @@ fn strptime(s: str, format: str) -> result<tm, str> { some((value, pos)) } - fn parse_char(s: str, pos: uint, c: char) -> result<uint, str> { + fn parse_char(s: ~str, pos: uint, c: char) -> result<uint, ~str> { let {ch, next} = str::char_range_at(s, pos); if c == ch { @@ -202,73 +202,73 @@ fn strptime(s: str, format: str) -> result<tm, str> { } } - fn parse_type(s: str, pos: uint, ch: char, tm: tm_mut) - -> result<uint, str> { + fn parse_type(s: ~str, pos: uint, ch: char, tm: tm_mut) + -> result<uint, ~str> { alt ch { 'A' { alt match_strs(s, pos, ~[ - ("Sunday", 0_i32), - ("Monday", 1_i32), - ("Tuesday", 2_i32), - ("Wednesday", 3_i32), - ("Thursday", 4_i32), - ("Friday", 5_i32), - ("Saturday", 6_i32) + (~"Sunday", 0_i32), + (~"Monday", 1_i32), + (~"Tuesday", 2_i32), + (~"Wednesday", 3_i32), + (~"Thursday", 4_i32), + (~"Friday", 5_i32), + (~"Saturday", 6_i32) ]) { some(item) { let (v, pos) = item; tm.tm_wday = v; ok(pos) } - none { err("Invalid day") } + none { err(~"Invalid day") } } } 'a' { alt match_strs(s, pos, ~[ - ("Sun", 0_i32), - ("Mon", 1_i32), - ("Tue", 2_i32), - ("Wed", 3_i32), - ("Thu", 4_i32), - ("Fri", 5_i32), - ("Sat", 6_i32) + (~"Sun", 0_i32), + (~"Mon", 1_i32), + (~"Tue", 2_i32), + (~"Wed", 3_i32), + (~"Thu", 4_i32), + (~"Fri", 5_i32), + (~"Sat", 6_i32) ]) { some(item) { let (v, pos) = item; tm.tm_wday = v; ok(pos) } - none { err("Invalid day") } + none { err(~"Invalid day") } } } 'B' { alt match_strs(s, pos, ~[ - ("January", 0_i32), - ("February", 1_i32), - ("March", 2_i32), - ("April", 3_i32), - ("May", 4_i32), - ("June", 5_i32), - ("July", 6_i32), - ("August", 7_i32), - ("September", 8_i32), - ("October", 9_i32), - ("November", 10_i32), - ("December", 11_i32) + (~"January", 0_i32), + (~"February", 1_i32), + (~"March", 2_i32), + (~"April", 3_i32), + (~"May", 4_i32), + (~"June", 5_i32), + (~"July", 6_i32), + (~"August", 7_i32), + (~"September", 8_i32), + (~"October", 9_i32), + (~"November", 10_i32), + (~"December", 11_i32) ]) { some(item) { let (v, pos) = item; tm.tm_mon = v; ok(pos) } - none { err("Invalid month") } + none { err(~"Invalid month") } } } 'b' | 'h' { alt match_strs(s, pos, ~[ - ("Jan", 0_i32), - ("Feb", 1_i32), - ("Mar", 2_i32), - ("Apr", 3_i32), - ("May", 4_i32), - ("Jun", 5_i32), - ("Jul", 6_i32), - ("Aug", 7_i32), - ("Sep", 8_i32), - ("Oct", 9_i32), - ("Nov", 10_i32), - ("Dec", 11_i32) + (~"Jan", 0_i32), + (~"Feb", 1_i32), + (~"Mar", 2_i32), + (~"Apr", 3_i32), + (~"May", 4_i32), + (~"Jun", 5_i32), + (~"Jul", 6_i32), + (~"Aug", 7_i32), + (~"Sep", 8_i32), + (~"Oct", 9_i32), + (~"Nov", 10_i32), + (~"Dec", 11_i32) ]) { some(item) { let (v, pos) = item; tm.tm_mon = v; ok(pos) } - none { err("Invalid month") } + none { err(~"Invalid month") } } } 'C' { @@ -278,7 +278,7 @@ fn strptime(s: str, format: str) -> result<tm, str> { tm.tm_year += (v * 100_i32) - 1900_i32; ok(pos) } - none { err("Invalid year") } + none { err(~"Invalid year") } } } 'c' { @@ -302,13 +302,13 @@ fn strptime(s: str, format: str) -> result<tm, str> { 'd' { alt match_digits(s, pos, 2u, false) { some(item) { let (v, pos) = item; tm.tm_mday = v; ok(pos) } - none { err("Invalid day of the month") } + none { err(~"Invalid day of the month") } } } 'e' { alt match_digits(s, pos, 2u, true) { some(item) { let (v, pos) = item; tm.tm_mday = v; ok(pos) } - none { err("Invalid day of the month") } + none { err(~"Invalid day of the month") } } } 'F' { @@ -322,7 +322,7 @@ fn strptime(s: str, format: str) -> result<tm, str> { // FIXME (#2350): range check. alt match_digits(s, pos, 2u, false) { some(item) { let (v, pos) = item; tm.tm_hour = v; ok(pos) } - none { err("Invalid hour") } + none { err(~"Invalid hour") } } } 'I' { @@ -333,7 +333,7 @@ fn strptime(s: str, format: str) -> result<tm, str> { tm.tm_hour = if v == 12_i32 { 0_i32 } else { v }; ok(pos) } - none { err("Invalid hour") } + none { err(~"Invalid hour") } } } 'j' { @@ -344,14 +344,14 @@ fn strptime(s: str, format: str) -> result<tm, str> { tm.tm_yday = v - 1_i32; ok(pos) } - none { err("Invalid year") } + none { err(~"Invalid year") } } } 'k' { // FIXME (#2350): range check. alt match_digits(s, pos, 2u, true) { some(item) { let (v, pos) = item; tm.tm_hour = v; ok(pos) } - none { err("Invalid hour") } + none { err(~"Invalid hour") } } } 'l' { @@ -362,14 +362,14 @@ fn strptime(s: str, format: str) -> result<tm, str> { tm.tm_hour = if v == 12_i32 { 0_i32 } else { v }; ok(pos) } - none { err("Invalid hour") } + none { err(~"Invalid hour") } } } 'M' { // FIXME (#2350): range check. alt match_digits(s, pos, 2u, false) { some(item) { let (v, pos) = item; tm.tm_min = v; ok(pos) } - none { err("Invalid minute") } + none { err(~"Invalid minute") } } } 'm' { @@ -380,20 +380,20 @@ fn strptime(s: str, format: str) -> result<tm, str> { tm.tm_mon = v - 1_i32; ok(pos) } - none { err("Invalid month") } + none { err(~"Invalid month") } } } 'n' { parse_char(s, pos, '\n') } 'P' { - alt match_strs(s, pos, ~[("am", 0_i32), ("pm", 12_i32)]) { + alt match_strs(s, pos, ~[(~"am", 0_i32), (~"pm", 12_i32)]) { some(item) { let (v, pos) = item; tm.tm_hour += v; ok(pos) } - none { err("Invalid hour") } + none { err(~"Invalid hour") } } } 'p' { - alt match_strs(s, pos, ~[("AM", 0_i32), ("PM", 12_i32)]) { + alt match_strs(s, pos, ~[(~"AM", 0_i32), (~"PM", 12_i32)]) { some(item) { let (v, pos) = item; tm.tm_hour += v; ok(pos) } - none { err("Invalid hour") } + none { err(~"Invalid hour") } } } 'R' { @@ -418,7 +418,7 @@ fn strptime(s: str, format: str) -> result<tm, str> { tm.tm_sec = v; ok(pos) } - none { err("Invalid second") } + none { err(~"Invalid second") } } } //'s' {} @@ -438,7 +438,7 @@ fn strptime(s: str, format: str) -> result<tm, str> { tm.tm_wday = v; ok(pos) } - none { err("Invalid weekday") } + none { err(~"Invalid weekday") } } } 'v' { @@ -453,7 +453,7 @@ fn strptime(s: str, format: str) -> result<tm, str> { // FIXME (#2350): range check. alt match_digits(s, pos, 1u, false) { some(item) { let (v, pos) = item; tm.tm_wday = v; ok(pos) } - none { err("Invalid weekday") } + none { err(~"Invalid weekday") } } } //'X' {} @@ -466,7 +466,7 @@ fn strptime(s: str, format: str) -> result<tm, str> { tm.tm_year = v - 1900_i32; ok(pos) } - none { err("Invalid weekday") } + none { err(~"Invalid weekday") } } } 'y' { @@ -477,13 +477,13 @@ fn strptime(s: str, format: str) -> result<tm, str> { tm.tm_year = v - 1900_i32; ok(pos) } - none { err("Invalid weekday") } + none { err(~"Invalid weekday") } } } 'Z' { - if match_str(s, pos, "UTC") || match_str(s, pos, "GMT") { + if match_str(s, pos, ~"UTC") || match_str(s, pos, ~"GMT") { tm.tm_gmtoff = 0_i32; - tm.tm_zone = "UTC"; + tm.tm_zone = ~"UTC"; ok(pos + 3u) } else { // It's odd, but to maintain compatibility with c's @@ -508,15 +508,15 @@ fn strptime(s: str, format: str) -> result<tm, str> { let (v, pos) = item; if v == 0_i32 { tm.tm_gmtoff = 0_i32; - tm.tm_zone = "UTC"; + tm.tm_zone = ~"UTC"; } ok(pos) } - none { err("Invalid zone offset") } + none { err(~"Invalid zone offset") } } } else { - err("Invalid zone offset") + err(~"Invalid zone offset") } } '%' { parse_char(s, pos, '%') } @@ -538,12 +538,12 @@ fn strptime(s: str, format: str) -> result<tm, str> { mut tm_yday: 0_i32, mut tm_isdst: 0_i32, mut tm_gmtoff: 0_i32, - mut tm_zone: "", + mut tm_zone: ~"", mut tm_nsec: 0_i32, }; let mut pos = 0u; let len = str::len(s); - let mut result = err("Invalid time"); + let mut result = err(~"Invalid time"); while !rdr.eof() && pos < len { let {ch, next} = str::char_range_at(s, pos); @@ -581,62 +581,62 @@ fn strptime(s: str, format: str) -> result<tm, str> { } } -fn strftime(format: str, tm: tm) -> str { - fn parse_type(ch: char, tm: tm) -> str { +fn strftime(format: ~str, tm: tm) -> ~str { + fn parse_type(ch: char, tm: tm) -> ~str { //FIXME (#2350): Implement missing types. alt check ch { 'A' { alt check tm.tm_wday as int { - 0 { "Sunday" } - 1 { "Monday" } - 2 { "Tuesday" } - 3 { "Wednesday" } - 4 { "Thursday" } - 5 { "Friday" } - 6 { "Saturday" } + 0 { ~"Sunday" } + 1 { ~"Monday" } + 2 { ~"Tuesday" } + 3 { ~"Wednesday" } + 4 { ~"Thursday" } + 5 { ~"Friday" } + 6 { ~"Saturday" } } } 'a' { alt check tm.tm_wday as int { - 0 { "Sun" } - 1 { "Mon" } - 2 { "Tue" } - 3 { "Wed" } - 4 { "Thu" } - 5 { "Fri" } - 6 { "Sat" } + 0 { ~"Sun" } + 1 { ~"Mon" } + 2 { ~"Tue" } + 3 { ~"Wed" } + 4 { ~"Thu" } + 5 { ~"Fri" } + 6 { ~"Sat" } } } 'B' { alt check tm.tm_mon as int { - 0 { "January" } - 1 { "February" } - 2 { "March" } - 3 { "April" } - 4 { "May" } - 5 { "June" } - 6 { "July" } - 7 { "August" } - 8 { "September" } - 9 { "October" } - 10 { "November" } - 11 { "December" } + 0 { ~"January" } + 1 { ~"February" } + 2 { ~"March" } + 3 { ~"April" } + 4 { ~"May" } + 5 { ~"June" } + 6 { ~"July" } + 7 { ~"August" } + 8 { ~"September" } + 9 { ~"October" } + 10 { ~"November" } + 11 { ~"December" } } } 'b' | 'h' { alt check tm.tm_mon as int { - 0 { "Jan" } - 1 { "Feb" } - 2 { "Mar" } - 3 { "Apr" } - 4 { "May" } - 5 { "Jun" } - 6 { "Jul" } - 7 { "Aug" } - 8 { "Sep" } - 9 { "Oct" } - 10 { "Nov" } - 11 { "Dec" } + 0 { ~"Jan" } + 1 { ~"Feb" } + 2 { ~"Mar" } + 3 { ~"Apr" } + 4 { ~"May" } + 5 { ~"Jun" } + 6 { ~"Jul" } + 7 { ~"Aug" } + 8 { ~"Sep" } + 9 { ~"Oct" } + 10 { ~"Nov" } + 11 { ~"Dec" } } } 'C' { #fmt("%02d", (tm.tm_year as int + 1900) / 100) } @@ -681,9 +681,9 @@ fn strftime(format: str, tm: tm) -> str { } 'M' { #fmt("%02d", tm.tm_min as int) } 'm' { #fmt("%02d", tm.tm_mon as int + 1) } - 'n' { "\n" } - 'P' { if tm.tm_hour as int < 12 { "am" } else { "pm" } } - 'p' { if tm.tm_hour as int < 12 { "AM" } else { "PM" } } + 'n' { ~"\n" } + 'P' { if tm.tm_hour as int < 12 { ~"am" } else { ~"pm" } } + 'p' { if tm.tm_hour as int < 12 { ~"AM" } else { ~"PM" } } 'R' { #fmt("%s:%s", parse_type('H', tm), @@ -704,7 +704,7 @@ fn strftime(format: str, tm: tm) -> str { parse_type('M', tm), parse_type('S', tm)) } - 't' { "\t" } + 't' { ~"\t" } //'U' {} 'u' { let i = tm.tm_wday as int; @@ -732,11 +732,11 @@ fn strftime(format: str, tm: tm) -> str { #fmt("%c%02d%02d", sign, h as int, m as int) } //'+' {} - '%' { "%" } + '%' { ~"%" } } } - let mut buf = ""; + let mut buf = ~""; do io::with_str_reader(format) |rdr| { while !rdr.eof() { @@ -776,10 +776,10 @@ impl tm for tm { * Return a string of the current time in the form * "Thu Jan 1 00:00:00 1970". */ - fn ctime() -> str { self.strftime("%c") } + fn ctime() -> ~str { self.strftime(~"%c") } /// Formats the time according to the format string. - fn strftime(format: str) -> str { strftime(format, self) } + fn strftime(format: ~str) -> ~str { strftime(format, self) } /** * Returns a time string formatted according to RFC 822. @@ -787,11 +787,11 @@ impl tm for tm { * local: "Thu, 22 Mar 2012 07:53:18 PST" * utc: "Thu, 22 Mar 2012 14:53:18 UTC" */ - fn rfc822() -> str { + fn rfc822() -> ~str { if self.tm_gmtoff == 0_i32 { - self.strftime("%a, %d %b %Y %T GMT") + self.strftime(~"%a, %d %b %Y %T GMT") } else { - self.strftime("%a, %d %b %Y %T %Z") + self.strftime(~"%a, %d %b %Y %T %Z") } } @@ -801,8 +801,8 @@ impl tm for tm { * local: "Thu, 22 Mar 2012 07:53:18 -0700" * utc: "Thu, 22 Mar 2012 14:53:18 -0000" */ - fn rfc822z() -> str { - self.strftime("%a, %d %b %Y %T %z") + fn rfc822z() -> ~str { + self.strftime(~"%a, %d %b %Y %T %z") } /** @@ -811,11 +811,11 @@ impl tm for tm { * local: "2012-02-22T07:53:18-07:00" * utc: "2012-02-22T14:53:18Z" */ - fn rfc3339() -> str { + fn rfc3339() -> ~str { if self.tm_gmtoff == 0_i32 { - self.strftime("%Y-%m-%dT%H:%M:%SZ") + self.strftime(~"%Y-%m-%dT%H:%M:%SZ") } else { - let s = self.strftime("%Y-%m-%dT%H:%M:%S"); + let s = self.strftime(~"%Y-%m-%dT%H:%M:%S"); let sign = if self.tm_gmtoff > 0_i32 { '+' } else { '-' }; let mut m = i32::abs(self.tm_gmtoff) / 60_i32; let h = m / 60_i32; @@ -835,15 +835,15 @@ mod tests { const some_future_date: i64 = 1577836800i64; // 2020-01-01T00:00:00Z let tv1 = get_time(); - log(debug, "tv1=" + uint::str(tv1.sec as uint) + " sec + " - + uint::str(tv1.nsec as uint) + " nsec"); + log(debug, ~"tv1=" + uint::str(tv1.sec as uint) + ~" sec + " + + uint::str(tv1.nsec as uint) + ~" nsec"); assert tv1.sec > some_recent_date; assert tv1.nsec < 1000000000i32; let tv2 = get_time(); - log(debug, "tv2=" + uint::str(tv2.sec as uint) + " sec + " - + uint::str(tv2.nsec as uint) + " nsec"); + log(debug, ~"tv2=" + uint::str(tv2.sec as uint) + ~" sec + " + + uint::str(tv2.nsec as uint) + ~" nsec"); assert tv2.sec >= tv1.sec; assert tv2.sec < some_future_date; @@ -858,22 +858,22 @@ mod tests { let s0 = precise_time_s(); let ns1 = precise_time_ns(); - log(debug, "s0=" + float::to_str(s0, 9u) + " sec"); + log(debug, ~"s0=" + float::to_str(s0, 9u) + ~" sec"); assert s0 > 0.; let ns0 = (s0 * 1000000000.) as u64; - log(debug, "ns0=" + u64::str(ns0) + " ns"); + log(debug, ~"ns0=" + u64::str(ns0) + ~" ns"); - log(debug, "ns1=" + u64::str(ns1) + " ns"); + log(debug, ~"ns1=" + u64::str(ns1) + ~" ns"); assert ns1 >= ns0; let ns2 = precise_time_ns(); - log(debug, "ns2=" + u64::str(ns2) + " ns"); + log(debug, ~"ns2=" + u64::str(ns2) + ~" ns"); assert ns2 >= ns1; } #[test] fn test_at_utc() { - os::setenv("TZ", "America/Los_Angeles"); + os::setenv(~"TZ", ~"America/Los_Angeles"); tzset(); let time = { sec: 1234567890_i64, nsec: 54321_i32 }; @@ -889,13 +889,13 @@ mod tests { assert utc.tm_yday == 43_i32; assert utc.tm_isdst == 0_i32; assert utc.tm_gmtoff == 0_i32; - assert utc.tm_zone == "UTC"; + assert utc.tm_zone == ~"UTC"; assert utc.tm_nsec == 54321_i32; } #[test] fn test_at() { - os::setenv("TZ", "America/Los_Angeles"); + os::setenv(~"TZ", ~"America/Los_Angeles"); tzset(); let time = { sec: 1234567890_i64, nsec: 54321_i32 }; @@ -917,14 +917,14 @@ mod tests { // FIXME (#2350): We should probably standardize on the timezone // abbreviation. let zone = local.tm_zone; - assert zone == "PST" || zone == "Pacific Standard Time"; + assert zone == ~"PST" || zone == ~"Pacific Standard Time"; assert local.tm_nsec == 54321_i32; } #[test] fn test_to_timespec() { - os::setenv("TZ", "America/Los_Angeles"); + os::setenv(~"TZ", ~"America/Los_Angeles"); tzset(); let time = { sec: 1234567890_i64, nsec: 54321_i32 }; @@ -936,7 +936,7 @@ mod tests { #[test] fn test_conversions() { - os::setenv("TZ", "America/Los_Angeles"); + os::setenv(~"TZ", ~"America/Los_Angeles"); tzset(); let time = { sec: 1234567890_i64, nsec: 54321_i32 }; @@ -953,10 +953,10 @@ mod tests { #[test] fn test_strptime() { - os::setenv("TZ", "America/Los_Angeles"); + os::setenv(~"TZ", ~"America/Los_Angeles"); tzset(); - alt strptime("", "") { + alt strptime(~"", ~"") { ok(tm) { assert tm.tm_sec == 0_i32; assert tm.tm_min == 0_i32; @@ -967,17 +967,18 @@ mod tests { assert tm.tm_wday == 0_i32; assert tm.tm_isdst== 0_i32; assert tm.tm_gmtoff == 0_i32; - assert tm.tm_zone == ""; + assert tm.tm_zone == ~""; assert tm.tm_nsec == 0_i32; } err(_) {} } - let format = "%a %b %e %T %Y"; - assert strptime("", format) == err("Invalid time"); - assert strptime("Fri Feb 13 15:31:30", format) == err("Invalid time"); + let format = ~"%a %b %e %T %Y"; + assert strptime(~"", format) == err(~"Invalid time"); + assert strptime(~"Fri Feb 13 15:31:30", format) + == err(~"Invalid time"); - alt strptime("Fri Feb 13 15:31:30 2009", format) { + alt strptime(~"Fri Feb 13 15:31:30 2009", format) { err(e) { fail e } ok(tm) { assert tm.tm_sec == 30_i32; @@ -990,12 +991,12 @@ mod tests { assert tm.tm_yday == 0_i32; assert tm.tm_isdst == 0_i32; assert tm.tm_gmtoff == 0_i32; - assert tm.tm_zone == ""; + assert tm.tm_zone == ~""; assert tm.tm_nsec == 0_i32; } } - fn test(s: str, format: str) -> bool { + fn test(s: ~str, format: ~str) -> bool { alt strptime(s, format) { ok(tm) { tm.strftime(format) == s } err(e) { fail e } @@ -1003,103 +1004,103 @@ mod tests { } [ - "Sunday", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday" - ]/_.iter(|day| assert test(day, "%A")); + ~"Sunday", + ~"Monday", + ~"Tuesday", + ~"Wednesday", + ~"Thursday", + ~"Friday", + ~"Saturday" + ]/_.iter(|day| assert test(day, ~"%A")); [ - "Sun", - "Mon", - "Tue", - "Wed", - "Thu", - "Fri", - "Sat" - ]/_.iter(|day| assert test(day, "%a")); + ~"Sun", + ~"Mon", + ~"Tue", + ~"Wed", + ~"Thu", + ~"Fri", + ~"Sat" + ]/_.iter(|day| assert test(day, ~"%a")); [ - "January", - "February", - "March", - "April", - "May", - "June", - "July", - "August", - "September", - "October", - "November", - "December" - ]/_.iter(|day| assert test(day, "%B")); + ~"January", + ~"February", + ~"March", + ~"April", + ~"May", + ~"June", + ~"July", + ~"August", + ~"September", + ~"October", + ~"November", + ~"December" + ]/_.iter(|day| assert test(day, ~"%B")); [ - "Jan", - "Feb", - "Mar", - "Apr", - "May", - "Jun", - "Jul", - "Aug", - "Sep", - "Oct", - "Nov", - "Dec" - ]/_.iter(|day| assert test(day, "%b")); - - assert test("19", "%C"); - assert test("Fri Feb 13 23:31:30 2009", "%c"); - assert test("02/13/09", "%D"); - assert test("03", "%d"); - assert test("13", "%d"); - assert test(" 3", "%e"); - assert test("13", "%e"); - assert test("2009-02-13", "%F"); - assert test("03", "%H"); - assert test("13", "%H"); - assert test("03", "%I"); // FIXME (#2350): flesh out - assert test("11", "%I"); // FIXME (#2350): flesh out - assert test("044", "%j"); - assert test(" 3", "%k"); - assert test("13", "%k"); - assert test(" 1", "%l"); - assert test("11", "%l"); - assert test("03", "%M"); - assert test("13", "%M"); - assert test("\n", "%n"); - assert test("am", "%P"); - assert test("pm", "%P"); - assert test("AM", "%p"); - assert test("PM", "%p"); - assert test("23:31", "%R"); - assert test("11:31:30 AM", "%r"); - assert test("11:31:30 PM", "%r"); - assert test("03", "%S"); - assert test("13", "%S"); - assert test("15:31:30", "%T"); - assert test("\t", "%t"); - assert test("1", "%u"); - assert test("7", "%u"); - assert test("13-Feb-2009", "%v"); - assert test("0", "%w"); - assert test("6", "%w"); - assert test("2009", "%Y"); - assert test("09", "%y"); - assert strptime("UTC", "%Z").get().tm_zone == "UTC"; - assert strptime("PST", "%Z").get().tm_zone == ""; - assert strptime("-0000", "%z").get().tm_gmtoff == 0_i32; - assert strptime("-0800", "%z").get().tm_gmtoff == 0_i32; - assert test("%", "%%"); + ~"Jan", + ~"Feb", + ~"Mar", + ~"Apr", + ~"May", + ~"Jun", + ~"Jul", + ~"Aug", + ~"Sep", + ~"Oct", + ~"Nov", + ~"Dec" + ]/_.iter(|day| assert test(day, ~"%b")); + + assert test(~"19", ~"%C"); + assert test(~"Fri Feb 13 23:31:30 2009", ~"%c"); + assert test(~"02/13/09", ~"%D"); + assert test(~"03", ~"%d"); + assert test(~"13", ~"%d"); + assert test(~" 3", ~"%e"); + assert test(~"13", ~"%e"); + assert test(~"2009-02-13", ~"%F"); + assert test(~"03", ~"%H"); + assert test(~"13", ~"%H"); + assert test(~"03", ~"%I"); // FIXME (#2350): flesh out + assert test(~"11", ~"%I"); // FIXME (#2350): flesh out + assert test(~"044", ~"%j"); + assert test(~" 3", ~"%k"); + assert test(~"13", ~"%k"); + assert test(~" 1", ~"%l"); + assert test(~"11", ~"%l"); + assert test(~"03", ~"%M"); + assert test(~"13", ~"%M"); + assert test(~"\n", ~"%n"); + assert test(~"am", ~"%P"); + assert test(~"pm", ~"%P"); + assert test(~"AM", ~"%p"); + assert test(~"PM", ~"%p"); + assert test(~"23:31", ~"%R"); + assert test(~"11:31:30 AM", ~"%r"); + assert test(~"11:31:30 PM", ~"%r"); + assert test(~"03", ~"%S"); + assert test(~"13", ~"%S"); + assert test(~"15:31:30", ~"%T"); + assert test(~"\t", ~"%t"); + assert test(~"1", ~"%u"); + assert test(~"7", ~"%u"); + assert test(~"13-Feb-2009", ~"%v"); + assert test(~"0", ~"%w"); + assert test(~"6", ~"%w"); + assert test(~"2009", ~"%Y"); + assert test(~"09", ~"%y"); + assert strptime(~"UTC", ~"%Z").get().tm_zone == ~"UTC"; + assert strptime(~"PST", ~"%Z").get().tm_zone == ~""; + assert strptime(~"-0000", ~"%z").get().tm_gmtoff == 0_i32; + assert strptime(~"-0800", ~"%z").get().tm_gmtoff == 0_i32; + assert test(~"%", ~"%%"); } #[test] fn test_ctime() { - os::setenv("TZ", "America/Los_Angeles"); + os::setenv(~"TZ", ~"America/Los_Angeles"); tzset(); let time = { sec: 1234567890_i64, nsec: 54321_i32 }; @@ -1108,81 +1109,81 @@ mod tests { #error("test_ctime: %? %?", utc.ctime(), local.ctime()); - assert utc.ctime() == "Fri Feb 13 23:31:30 2009"; - assert local.ctime() == "Fri Feb 13 15:31:30 2009"; + assert utc.ctime() == ~"Fri Feb 13 23:31:30 2009"; + assert local.ctime() == ~"Fri Feb 13 15:31:30 2009"; } #[test] fn test_strftime() { - os::setenv("TZ", "America/Los_Angeles"); + os::setenv(~"TZ", ~"America/Los_Angeles"); tzset(); let time = { sec: 1234567890_i64, nsec: 54321_i32 }; let utc = at_utc(time); let local = at(time); - assert local.strftime("") == ""; - assert local.strftime("%A") == "Friday"; - assert local.strftime("%a") == "Fri"; - assert local.strftime("%B") == "February"; - assert local.strftime("%b") == "Feb"; - assert local.strftime("%C") == "20"; - assert local.strftime("%c") == "Fri Feb 13 15:31:30 2009"; - assert local.strftime("%D") == "02/13/09"; - assert local.strftime("%d") == "13"; - assert local.strftime("%e") == "13"; - assert local.strftime("%F") == "2009-02-13"; + assert local.strftime(~"") == ~""; + assert local.strftime(~"%A") == ~"Friday"; + assert local.strftime(~"%a") == ~"Fri"; + assert local.strftime(~"%B") == ~"February"; + assert local.strftime(~"%b") == ~"Feb"; + assert local.strftime(~"%C") == ~"20"; + assert local.strftime(~"%c") == ~"Fri Feb 13 15:31:30 2009"; + assert local.strftime(~"%D") == ~"02/13/09"; + assert local.strftime(~"%d") == ~"13"; + assert local.strftime(~"%e") == ~"13"; + assert local.strftime(~"%F") == ~"2009-02-13"; // assert local.strftime("%G") == "2009"; // assert local.strftime("%g") == "09"; - assert local.strftime("%H") == "15"; - assert local.strftime("%I") == "03"; - assert local.strftime("%j") == "044"; - assert local.strftime("%k") == "15"; - assert local.strftime("%l") == " 3"; - assert local.strftime("%M") == "31"; - assert local.strftime("%m") == "02"; - assert local.strftime("%n") == "\n"; - assert local.strftime("%P") == "pm"; - assert local.strftime("%p") == "PM"; - assert local.strftime("%R") == "15:31"; - assert local.strftime("%r") == "03:31:30 PM"; - assert local.strftime("%S") == "30"; - assert local.strftime("%s") == "1234567890"; - assert local.strftime("%T") == "15:31:30"; - assert local.strftime("%t") == "\t"; + assert local.strftime(~"%H") == ~"15"; + assert local.strftime(~"%I") == ~"03"; + assert local.strftime(~"%j") == ~"044"; + assert local.strftime(~"%k") == ~"15"; + assert local.strftime(~"%l") == ~" 3"; + assert local.strftime(~"%M") == ~"31"; + assert local.strftime(~"%m") == ~"02"; + assert local.strftime(~"%n") == ~"\n"; + assert local.strftime(~"%P") == ~"pm"; + assert local.strftime(~"%p") == ~"PM"; + assert local.strftime(~"%R") == ~"15:31"; + assert local.strftime(~"%r") == ~"03:31:30 PM"; + assert local.strftime(~"%S") == ~"30"; + assert local.strftime(~"%s") == ~"1234567890"; + assert local.strftime(~"%T") == ~"15:31:30"; + assert local.strftime(~"%t") == ~"\t"; // assert local.strftime("%U") == "06"; - assert local.strftime("%u") == "5"; + assert local.strftime(~"%u") == ~"5"; // assert local.strftime("%V") == "07"; - assert local.strftime("%v") == "13-Feb-2009"; + assert local.strftime(~"%v") == ~"13-Feb-2009"; // assert local.strftime("%W") == "06"; - assert local.strftime("%w") == "5"; + assert local.strftime(~"%w") == ~"5"; // handle "%X" // handle "%x" - assert local.strftime("%Y") == "2009"; - assert local.strftime("%y") == "09"; + assert local.strftime(~"%Y") == ~"2009"; + assert local.strftime(~"%y") == ~"09"; // FIXME (#2350): We should probably standardize on the timezone // abbreviation. - let zone = local.strftime("%Z"); - assert zone == "PST" || zone == "Pacific Standard Time"; + let zone = local.strftime(~"%Z"); + assert zone == ~"PST" || zone == ~"Pacific Standard Time"; - assert local.strftime("%z") == "-0800"; - assert local.strftime("%%") == "%"; + assert local.strftime(~"%z") == ~"-0800"; + assert local.strftime(~"%%") == ~"%"; // FIXME (#2350): We should probably standardize on the timezone // abbreviation. let rfc822 = local.rfc822(); - let prefix = "Fri, 13 Feb 2009 15:31:30 "; - assert rfc822 == prefix + "PST" || - rfc822 == prefix + "Pacific Standard Time"; - - assert local.ctime() == "Fri Feb 13 15:31:30 2009"; - assert local.rfc822z() == "Fri, 13 Feb 2009 15:31:30 -0800"; - assert local.rfc3339() == "2009-02-13T15:31:30-08:00"; - - assert utc.ctime() == "Fri Feb 13 23:31:30 2009"; - assert utc.rfc822() == "Fri, 13 Feb 2009 23:31:30 GMT"; - assert utc.rfc822z() == "Fri, 13 Feb 2009 23:31:30 -0000"; - assert utc.rfc3339() == "2009-02-13T23:31:30Z"; + let prefix = ~"Fri, 13 Feb 2009 15:31:30 "; + assert rfc822 == prefix + ~"PST" || + rfc822 == prefix + ~"Pacific Standard Time"; + + assert local.ctime() == ~"Fri Feb 13 15:31:30 2009"; + assert local.rfc822z() == ~"Fri, 13 Feb 2009 15:31:30 -0800"; + assert local.rfc3339() == ~"2009-02-13T15:31:30-08:00"; + + assert utc.ctime() == ~"Fri Feb 13 23:31:30 2009"; + assert utc.rfc822() == ~"Fri, 13 Feb 2009 23:31:30 GMT"; + assert utc.rfc822z() == ~"Fri, 13 Feb 2009 23:31:30 -0000"; + assert utc.rfc3339() == ~"2009-02-13T23:31:30Z"; } } |
