Refactor is_hex_string
This commit is contained in:
parent
eef48ce834
commit
da2cd5d62a
23
src/pcd.rs
23
src/pcd.rs
@ -290,24 +290,21 @@ pub trait Pcd<'a>: Serialize + Deserialize<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
fn is_hex_string(&self) -> bool {
|
||||
let value = match serde_json::to_value(self) {
|
||||
Ok(v) => v,
|
||||
Err(_) => return false
|
||||
};
|
||||
fn is_hex_string(&self, length: Option<usize>) -> Result<()> {
|
||||
let value = serde_json::to_value(self)?;
|
||||
|
||||
match value {
|
||||
Value::String(s) => {
|
||||
let vec = Vec::from_hex(&s);
|
||||
if vec.is_err() {
|
||||
return false;
|
||||
} else if vec.unwrap().len() != 32 {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
let vec = Vec::from_hex(&s)?;
|
||||
if let Some(len) = length {
|
||||
let got_length = vec.len();
|
||||
if got_length != len {
|
||||
return Err(Error::msg(format!("Wrong length: expected {}, got {}", len, got_length)));
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
}
|
||||
_ => false
|
||||
_ => Err(Error::msg("Not a string Value"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user