diff --git a/lib/dubp/common-doc/src/blockstamp.rs b/lib/dubp/common-doc/src/blockstamp.rs index a1f87b1538d49774e4279e608601f2e68089f8d2..ac156ef1629c737fafdf7a77aa85ae7deb00658e 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 31059d9d90ee9107d4f1aad36cf83dc81740c909..b08475fc6677215fe6b97a4024adbd7d1372abf5 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,