[librsvg] Refactor some more to avoid Ok() all over the place
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg] Refactor some more to avoid Ok() all over the place
- Date: Mon, 31 Jul 2017 18:09:24 +0000 (UTC)
commit 4b90afa0c8909f1e27166b3c4a120ff1d989cd8d
Author: Federico Mena Quintero <federico gnome org>
Date: Mon Jul 31 13:05:47 2017 -0500
Refactor some more to avoid Ok() all over the place
rust/src/parsers.rs | 47 +++++++++++++++++++++++++----------------------
1 files changed, 25 insertions(+), 22 deletions(-)
---
diff --git a/rust/src/parsers.rs b/rust/src/parsers.rs
index 56ba7a3..7220ac5 100644
--- a/rust/src/parsers.rs
+++ b/rust/src/parsers.rs
@@ -37,28 +37,31 @@ pub fn angle_degrees (s: &str) -> Result <f64, ParseError> {
let mut input = ParserInput::new (s);
let mut parser = Parser::new (&mut input);
- let token = parser.next ()
- .map_err (|_| ParseError::new ("expected angle"))?;
+ let angle = {
+ let token = parser.next ()
+ .map_err (|_| ParseError::new ("expected angle"))?;
- match token {
- &Token::Number { value, .. } => Ok (value as f64),
+ match token {
+ &Token::Number { value, .. } => value as f64,
- &Token::Dimension { value, ref unit, .. } => {
- let value = value as f64;
+ &Token::Dimension { value, ref unit, .. } => {
+ let value = value as f64;
- match unit.as_ref () {
- "deg" => Ok (value),
- "grad" => Ok (value * 360.0 / 400.0),
- "rad" => Ok (value * 180.0 / PI),
- _ => Err (ParseError::new ("expected angle"))
- }
- },
+ match unit.as_ref () {
+ "deg" => value,
+ "grad" => value * 360.0 / 400.0,
+ "rad" => value * 180.0 / PI,
+ _ => return Err (ParseError::new ("expected angle"))
+ }
+ },
+
+ _ => return Err (ParseError::new ("expected angle"))
+ }
+ };
+
+ parser.expect_exhausted ().map_err (|_| ParseError::new ("expected angle"))?;
- _ => Err (ParseError::new ("expected angle"))
- }.and_then (|r|
- parser.expect_exhausted ()
- .map (|_| r)
- .map_err (|_| ParseError::new ("expected angle")))
+ Ok (angle)
}
fn optional_comma (parser: &mut Parser) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]