f4jumble: Return `Error` from allocating functions
This commit is contained in:
parent
682d5235c2
commit
4a30679491
|
@ -155,25 +155,15 @@ pub fn f4jumble_inv_mut(message: &mut [u8]) -> Result<(), Error> {
|
|||
}
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
pub fn f4jumble(message: &[u8]) -> Option<Vec<u8>> {
|
||||
pub fn f4jumble(message: &[u8]) -> Result<Vec<u8>, Error> {
|
||||
let mut result = message.to_vec();
|
||||
let res = f4jumble_mut(&mut result);
|
||||
if res.is_ok() {
|
||||
Some(result)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
f4jumble_mut(&mut result).map(|()| result)
|
||||
}
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
pub fn f4jumble_inv(message: &[u8]) -> Option<Vec<u8>> {
|
||||
pub fn f4jumble_inv(message: &[u8]) -> Result<Vec<u8>, Error> {
|
||||
let mut result = message.to_vec();
|
||||
let res = f4jumble_inv_mut(&mut result);
|
||||
if res.is_ok() {
|
||||
Some(result)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
f4jumble_inv_mut(&mut result).map(|()| result)
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
|
|
@ -222,7 +222,8 @@ pub(crate) mod private {
|
|||
writer.write_all(&padding).unwrap();
|
||||
|
||||
let padded = writer.into_inner();
|
||||
f4jumble::f4jumble(&padded).unwrap_or_else(|| panic!("f4jumble failed on {:?}", padded))
|
||||
f4jumble::f4jumble(&padded)
|
||||
.unwrap_or_else(|e| panic!("f4jumble failed on {:?}: {}", padded, e))
|
||||
}
|
||||
|
||||
/// Parse the items of the unified container.
|
||||
|
@ -265,8 +266,8 @@ pub(crate) mod private {
|
|||
result
|
||||
}
|
||||
|
||||
let encoded = f4jumble::f4jumble_inv(buf).ok_or_else(|| {
|
||||
ParseError::InvalidEncoding("F4Jumble decoding failed".to_owned())
|
||||
let encoded = f4jumble::f4jumble_inv(buf).map_err(|e| {
|
||||
ParseError::InvalidEncoding(format!("F4Jumble decoding failed: {}", e))
|
||||
})?;
|
||||
|
||||
// Validate and strip trailing padding bytes.
|
||||
|
|
Loading…
Reference in New Issue