From 9a9679ca4f45c550c85dd106981a9c2f79cf956d Mon Sep 17 00:00:00 2001 From: dvermd <888-dvermd@users.noreply.git.duniter.org> Date: Mon, 23 Dec 2019 23:24:11 +0100 Subject: [PATCH] [fix] common-doc: #134 remove unwrap and deny its use --- lib/dubp/common-doc/src/blockstamp.rs | 26 +++++++++++++------------- lib/dubp/common-doc/src/lib.rs | 2 ++ 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/lib/dubp/common-doc/src/blockstamp.rs b/lib/dubp/common-doc/src/blockstamp.rs index a1f87b15..ac156ef1 100644 --- a/lib/dubp/common-doc/src/blockstamp.rs +++ b/lib/dubp/common-doc/src/blockstamp.rs @@ -161,20 +161,20 @@ impl Blockstamp { pub fn from_string(src: &str) -> Result<Blockstamp, BlockstampParseError> { let mut split = src.split('-'); - if split.clone().count() != 2 { - Err(BlockstampParseError::InvalidFormat()) - } else { - let id = split.next().unwrap().parse::<u32>(); - let hash = Hash::from_hex(split.next().unwrap())?; - - if let Ok(id) = id { - Ok(Blockstamp { - id: BlockNumber(id), - hash: BlockHash(hash), - }) - } else { - Err(BlockstampParseError::InvalidBlockNumber()) + match (split.next(), split.next(), split.next()) { + (Some(id), Some(hash), None) => { + let hash = Hash::from_hex(hash)?; + + if let Ok(id) = id.parse::<u32>() { + Ok(Blockstamp { + id: BlockNumber(id), + hash: BlockHash(hash), + }) + } else { + Err(BlockstampParseError::InvalidBlockNumber()) + } } + _ => Err(BlockstampParseError::InvalidFormat()), } } } diff --git a/lib/dubp/common-doc/src/lib.rs b/lib/dubp/common-doc/src/lib.rs index 31059d9d..b08475fc 100644 --- a/lib/dubp/common-doc/src/lib.rs +++ b/lib/dubp/common-doc/src/lib.rs @@ -16,6 +16,8 @@ //! Provide common tools for DUBP. #![deny( + clippy::option_unwrap_used, + clippy::result_unwrap_used, missing_debug_implementations, missing_copy_implementations, trivial_casts, -- GitLab