about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorErick Tryzelaar <erick.tryzelaar@gmail.com>2012-12-20 21:15:49 -0800
committerTim Chevalier <chevalier@alum.wellesley.edu>2012-12-24 18:29:01 -0800
commit03b5fcabbd34c9ceb8466bfbca2cf6ca4cd36731 (patch)
tree603fbe0de739bbb6fc39db4f27aa7ff304f2c8bf /src
parent50902bb3025ed9e583bf029c78406cb5b9abf7c7 (diff)
downloadrust-03b5fcabbd34c9ceb8466bfbca2cf6ca4cd36731.tar.gz
rust-03b5fcabbd34c9ceb8466bfbca2cf6ca4cd36731.zip
Switch chain calls to use Option::chain method
Diffstat (limited to 'src')
-rw-r--r--src/libstd/time.rs117
1 files changed, 39 insertions, 78 deletions
diff --git a/src/libstd/time.rs b/src/libstd/time.rs
index 54539384862..1058910c35a 100644
--- a/src/libstd/time.rs
+++ b/src/libstd/time.rs
@@ -385,36 +385,22 @@ priv fn do_strptime(s: &str, format: &str) -> Result<Tm, ~str> {
             None => Err(~"Invalid year")
           },
           'c' => {
-                // FIXME(#3724): cleanup
-                result::chain(
-                result::chain(
-                result::chain(
-                result::chain(
-                result::chain(
-                result::chain(
-                result::chain(
-                result::chain(
-                    move parse_type(s, pos, 'a', tm),
-                    |pos| parse_char(s, pos, ' ')),
-                    |pos| parse_type(s, pos, 'b', tm)),
-                    |pos| parse_char(s, pos, ' ')),
-                    |pos| parse_type(s, pos, 'e', tm)),
-                    |pos| parse_char(s, pos, ' ')),
-                    |pos| parse_type(s, pos, 'T', tm)),
-                    |pos| parse_char(s, pos, ' ')),
-                    |pos| parse_type(s, pos, 'Y', tm))
+            parse_type(s, pos, 'a', tm)
+                .chain(|pos| parse_char(s, pos, ' '))
+                .chain(|pos| parse_type(s, pos, 'b', tm))
+                .chain(|pos| parse_char(s, pos, ' '))
+                .chain(|pos| parse_type(s, pos, 'e', tm))
+                .chain(|pos| parse_char(s, pos, ' '))
+                .chain(|pos| parse_type(s, pos, 'T', tm))
+                .chain(|pos| parse_char(s, pos, ' '))
+                .chain(|pos| parse_type(s, pos, 'Y', tm))
           }
           'D' | 'x' => {
-                // FIXME(#3724): cleanup
-                result::chain(
-                result::chain(
-                result::chain(
-                result::chain(
-                    move parse_type(s, pos, 'm', tm),
-                    |pos| parse_char(s, pos, '/')),
-                    |pos| parse_type(s, pos, 'd', tm)),
-                    |pos| parse_char(s, pos, '/')),
-                    |pos| parse_type(s, pos, 'y', tm))
+            parse_type(s, pos, 'm', tm)
+                .chain(|pos| parse_char(s, pos, '/'))
+                .chain(|pos| parse_type(s, pos, 'd', tm))
+                .chain(|pos| parse_char(s, pos, '/'))
+                .chain(|pos| parse_type(s, pos, 'y', tm))
           }
           'd' => match match_digits(s, pos, 2u, false) {
             Some(item) => { let (v, pos) = item; tm.tm_mday = v; Ok(pos) }
@@ -425,16 +411,11 @@ priv fn do_strptime(s: &str, format: &str) -> Result<Tm, ~str> {
             None => Err(~"Invalid day of the month")
           },
           'F' => {
-                // FIXME(#3724): cleanup
-                result::chain(
-                result::chain(
-                result::chain(
-                result::chain(
-                    move parse_type(s, pos, 'Y', tm),
-                    |pos| parse_char(s, pos, '-')),
-                    |pos| parse_type(s, pos, 'm', tm)),
-                    |pos| parse_char(s, pos, '-')),
-                    |pos| parse_type(s, pos, 'd', tm))
+            parse_type(s, pos, 'Y', tm)
+                .chain(|pos| parse_char(s, pos, '-'))
+                .chain(|pos| parse_type(s, pos, 'm', tm))
+                .chain(|pos| parse_char(s, pos, '-'))
+                .chain(|pos| parse_type(s, pos, 'd', tm))
           }
           'H' => {
             // FIXME (#2350): range check.
@@ -515,28 +496,18 @@ priv fn do_strptime(s: &str, format: &str) -> Result<Tm, ~str> {
             None => Err(~"Invalid hour")
           },
           'R' => {
-                // FIXME(#3724): cleanup
-                result::chain(
-                result::chain(
-                    move parse_type(s, pos, 'H', tm),
-                    |pos| parse_char(s, pos, ':')),
-                    |pos| parse_type(s, pos, 'M', tm))
+            parse_type(s, pos, 'H', tm)
+                .chain(|pos| parse_char(s, pos, ':'))
+                .chain(|pos| parse_type(s, pos, 'M', tm))
           }
           'r' => {
-                // FIXME(#3724): cleanup
-                result::chain(
-                result::chain(
-                result::chain(
-                result::chain(
-                result::chain(
-                result::chain(
-                    move parse_type(s, pos, 'I', tm),
-                    |pos| parse_char(s, pos, ':')),
-                    |pos| parse_type(s, pos, 'M', tm)),
-                    |pos| parse_char(s, pos, ':')),
-                    |pos| parse_type(s, pos, 'S', tm)),
-                    |pos| parse_char(s, pos, ' ')),
-                    |pos| parse_type(s, pos, 'p', tm))
+            parse_type(s, pos, 'I', tm)
+                .chain(|pos| parse_char(s, pos, ':'))
+                .chain(|pos| parse_type(s, pos, 'M', tm))
+                .chain(|pos| parse_char(s, pos, ':'))
+                .chain(|pos| parse_type(s, pos, 'S', tm))
+                .chain(|pos| parse_char(s, pos, ' '))
+                .chain(|pos| parse_type(s, pos, 'p', tm))
           }
           'S' => {
             // FIXME (#2350): range check.
@@ -551,16 +522,11 @@ priv fn do_strptime(s: &str, format: &str) -> Result<Tm, ~str> {
           }
           //'s' {}
           'T' | 'X' => {
-                // FIXME(#3724): cleanup
-                result::chain(
-                result::chain(
-                result::chain(
-                result::chain(
-                    move parse_type(s, pos, 'H', tm),
-                    |pos| parse_char(s, pos, ':')),
-                    |pos| parse_type(s, pos, 'M', tm)),
-                    |pos| parse_char(s, pos, ':')),
-                    |pos| parse_type(s, pos, 'S', tm))
+            parse_type(s, pos, 'H', tm)
+                .chain(|pos| parse_char(s, pos, ':'))
+                .chain(|pos| parse_type(s, pos, 'M', tm))
+                .chain(|pos| parse_char(s, pos, ':'))
+                .chain(|pos| parse_type(s, pos, 'S', tm))
           }
           't' => parse_char(s, pos, '\t'),
           'u' => {
@@ -575,16 +541,11 @@ priv fn do_strptime(s: &str, format: &str) -> Result<Tm, ~str> {
             }
           }
           'v' => {
-                // FIXME(#3724): cleanup
-                result::chain(
-                result::chain(
-                result::chain(
-                result::chain(
-                    move parse_type(s, pos, 'e', tm),
-                    |pos| parse_char(s, pos, '-')),
-                    |pos| parse_type(s, pos, 'b', tm)),
-                    |pos| parse_char(s, pos, '-')),
-                    |pos| parse_type(s, pos, 'Y', tm))
+            parse_type(s, pos, 'e', tm)
+                .chain(|pos|  parse_char(s, pos, '-'))
+                .chain(|pos| parse_type(s, pos, 'b', tm))
+                .chain(|pos| parse_char(s, pos, '-'))
+                .chain(|pos| parse_type(s, pos, 'Y', tm))
           }
           //'W' {}
           'w' => {