about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorCorey Farwell <coreyf@rwell.org>2014-11-23 12:08:11 -0500
committerCorey Farwell <coreyf@rwell.org>2014-11-23 12:08:11 -0500
commit02355b87261385533b46bbce632aeb5f9baf3bf4 (patch)
tree8936c1207a3aa1fe6dfeed42bcc6ff0987dd3714 /src
parent22513fed350cb6e722d31831de97bede42af8c70 (diff)
downloadrust-02355b87261385533b46bbce632aeb5f9baf3bf4.tar.gz
rust-02355b87261385533b46bbce632aeb5f9baf3bf4.zip
Clean up some logic/formatting in JSON module
Diffstat (limited to 'src')
-rw-r--r--src/libserialize/json.rs134
1 files changed, 63 insertions, 71 deletions
diff --git a/src/libserialize/json.rs b/src/libserialize/json.rs
index d59edafb2b4..4a2ca58fc92 100644
--- a/src/libserialize/json.rs
+++ b/src/libserialize/json.rs
@@ -1166,7 +1166,7 @@ impl Stack {
     /// at the top.
     pub fn get<'l>(&'l self, idx: uint) -> StackElement<'l> {
         match self.stack[idx] {
-            InternalIndex(i) => { Index(i) }
+            InternalIndex(i) => Index(i),
             InternalKey(start, size) => {
                 Key(str::from_utf8(
                     self.str_buffer[start as uint .. start as uint + size as uint]).unwrap())
@@ -1643,10 +1643,10 @@ impl<T: Iterator<char>> Parser<T> {
     fn parse_start(&mut self) -> JsonEvent {
         let val = self.parse_value();
         self.state = match val {
-            Error(_) => { ParseFinished }
-            ArrayStart => { ParseArray(true) }
-            ObjectStart => { ParseObject(true) }
-            _ => { ParseBeforeFinish }
+            Error(_) => ParseFinished,
+            ArrayStart => ParseArray(true),
+            ObjectStart => ParseObject(true),
+            _ => ParseBeforeFinish,
         };
         return val;
     }
@@ -1654,33 +1654,31 @@ impl<T: Iterator<char>> Parser<T> {
     fn parse_array(&mut self, first: bool) -> JsonEvent {
         if self.ch_is(']') {
             if !first {
-                return self.error_event(InvalidSyntax);
-            }
-            if self.stack.is_empty() {
-                self.state = ParseBeforeFinish;
+                self.error_event(InvalidSyntax)
             } else {
-                self.state = if self.stack.last_is_index() {
+                self.state = if self.stack.is_empty() {
+                    ParseBeforeFinish
+                } else if self.stack.last_is_index() {
                     ParseArrayComma
                 } else {
                     ParseObjectComma
-                }
+                };
+                self.bump();
+                ArrayEnd
             }
-            self.bump();
-            return ArrayEnd;
-        }
-        if first {
-            self.stack.push_index(0);
+        } else {
+            if first {
+                self.stack.push_index(0);
+            }
+            let val = self.parse_value();
+            self.state = match val {
+                Error(_) => ParseFinished,
+                ArrayStart => ParseArray(true),
+                ObjectStart => ParseObject(true),
+                _ => ParseArrayComma,
+            };
+            val
         }
-
-        let val = self.parse_value();
-
-        self.state = match val {
-            Error(_) => { ParseFinished }
-            ArrayStart => { ParseArray(true) }
-            ObjectStart => { ParseObject(true) }
-            _ => { ParseArrayComma }
-        };
-        return val;
     }
 
     fn parse_array_comma_or_end(&mut self) -> Option<JsonEvent> {
@@ -1688,24 +1686,22 @@ impl<T: Iterator<char>> Parser<T> {
             self.stack.bump_index();
             self.state = ParseArray(false);
             self.bump();
-            return None;
+            None
         } else if self.ch_is(']') {
             self.stack.pop();
-            if self.stack.is_empty() {
-                self.state = ParseBeforeFinish;
+            self.state = if self.stack.is_empty() {
+                ParseBeforeFinish
+            } else if self.stack.last_is_index() {
+                ParseArrayComma
             } else {
-                self.state = if self.stack.last_is_index() {
-                    ParseArrayComma
-                } else {
-                    ParseObjectComma
-                }
-            }
+                ParseObjectComma
+            };
             self.bump();
-            return Some(ArrayEnd);
+            Some(ArrayEnd)
         } else if self.eof() {
-            return Some(self.error_event(EOFWhileParsingArray));
+            Some(self.error_event(EOFWhileParsingArray))
         } else {
-            return Some(self.error_event(InvalidSyntax));
+            Some(self.error_event(InvalidSyntax))
         }
     }
 
@@ -1718,15 +1714,13 @@ impl<T: Iterator<char>> Parser<T> {
                     self.stack.pop();
                 }
             }
-            if self.stack.is_empty() {
-                self.state = ParseBeforeFinish;
+            self.state = if self.stack.is_empty() {
+                ParseBeforeFinish
+            } else if self.stack.last_is_index() {
+                ParseArrayComma
             } else {
-                self.state = if self.stack.last_is_index() {
-                    ParseArrayComma
-                } else {
-                    ParseObjectComma
-                }
-            }
+                ParseObjectComma
+            };
             self.bump();
             return ObjectEnd;
         }
@@ -1737,7 +1731,7 @@ impl<T: Iterator<char>> Parser<T> {
             return self.error_event(KeyMustBeAString);
         }
         let s = match self.parse_str() {
-            Ok(s) => { s }
+            Ok(s) => s,
             Err(e) => {
                 self.state = ParseFinished;
                 return Error(e);
@@ -1756,25 +1750,23 @@ impl<T: Iterator<char>> Parser<T> {
         let val = self.parse_value();
 
         self.state = match val {
-            Error(_) => { ParseFinished }
-            ArrayStart => { ParseArray(true) }
-            ObjectStart => { ParseObject(true) }
-            _ => { ParseObjectComma }
+            Error(_) => ParseFinished,
+            ArrayStart => ParseArray(true),
+            ObjectStart => ParseObject(true),
+            _ => ParseObjectComma,
         };
         return val;
     }
 
     fn parse_object_end(&mut self) -> JsonEvent {
         if self.ch_is('}') {
-            if self.stack.is_empty() {
-                self.state = ParseBeforeFinish;
+            self.state = if self.stack.is_empty() {
+                ParseBeforeFinish
+            } else if self.stack.last_is_index() {
+                ParseArrayComma
             } else {
-                self.state = if self.stack.last_is_index() {
-                    ParseArrayComma
-                } else {
-                    ParseObjectComma
-                }
-            }
+                ParseObjectComma
+            };
             self.bump();
             ObjectEnd
         } else if self.eof() {
@@ -1852,23 +1844,23 @@ impl<T: Iterator<char>> Builder<T> {
     }
 
     fn build_value(&mut self) -> Result<Json, BuilderError> {
-        return match self.token {
-            Some(NullValue) => { Ok(Null) }
-            Some(I64Value(n)) => { Ok(I64(n)) }
-            Some(U64Value(n)) => { Ok(U64(n)) }
-            Some(F64Value(n)) => { Ok(F64(n)) }
-            Some(BooleanValue(b)) => { Ok(Boolean(b)) }
+        match self.token {
+            Some(NullValue) => Ok(Null),
+            Some(I64Value(n)) => Ok(I64(n)),
+            Some(U64Value(n)) => Ok(U64(n)),
+            Some(F64Value(n)) => Ok(F64(n)),
+            Some(BooleanValue(b)) => Ok(Boolean(b)),
             Some(StringValue(ref mut s)) => {
                 let mut temp = string::String::new();
                 swap(s, &mut temp);
                 Ok(String(temp))
             }
-            Some(Error(e)) => { Err(e) }
-            Some(ArrayStart) => { self.build_array() }
-            Some(ObjectStart) => { self.build_object() }
-            Some(ObjectEnd) => { self.parser.error(InvalidSyntax) }
-            Some(ArrayEnd) => { self.parser.error(InvalidSyntax) }
-            None => { self.parser.error(EOFWhileParsingValue) }
+            Some(Error(e)) => Err(e),
+            Some(ArrayStart) => self.build_array(),
+            Some(ObjectStart) => self.build_object(),
+            Some(ObjectEnd) => self.parser.error(InvalidSyntax),
+            Some(ArrayEnd) => self.parser.error(InvalidSyntax),
+            None => self.parser.error(EOFWhileParsingValue),
         }
     }