From 8ecbb53e99133d89c7046efd0ab6c309278744d4 Mon Sep 17 00:00:00 2001 From: NikVolf Date: Tue, 12 Apr 2016 06:19:15 +0300 Subject: [PATCH] reducing code --- parity/upgrade.rs | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/parity/upgrade.rs b/parity/upgrade.rs index 0b41b5892..c9c98e174 100644 --- a/parity/upgrade.rs +++ b/parity/upgrade.rs @@ -97,23 +97,19 @@ fn with_locked_version(script: F) -> Result path.push(".parity"); path.push("ver.lock"); - let version: Option = { - match File::open(&path) { - Ok(mut file) => { + let version = + File::open(&path).ok().and_then(|ref mut file| + { let mut version_string = String::new(); - match file.read_to_string(&mut version_string) { - Ok(_) => Some(Version::parse(&version_string).unwrap()), - Err(_) => None - } - }, - Err(_) => None - } - }; - let effective_version = version.unwrap_or_else(|| Version::parse("0.9.0").unwrap()); + file.read_to_string(&mut version_string) + .ok() + .and_then(|_| Version::parse(&version_string).ok()) + }) + .unwrap_or_else(|| Version::parse("0.9.0").unwrap()); let script_result = { let mut lock = try!(File::create(&path).map_err(|_| Error::CannotLockVersionFile)); - let result = script(&effective_version); + let result = script(&version); let written_version = Version::parse(CURRENT_VERSION).unwrap(); try!(lock.write_all(written_version.to_string().as_bytes()).map_err(|_| Error::CannotUpdateVersionFile));