value: add TryFrom impl for Binary values

This commit is contained in:
Matt Bilker
2018-12-13 01:22:15 +00:00
parent f08ede1b3c
commit 161928d92d

View File

@@ -605,6 +605,22 @@ impl Value {
value => Err(KbinErrorKind::ExpectedValueArray(value.clone()).into()),
}
}
pub fn into_binary(self) -> Result<Vec<u8>, KbinError> {
match self {
Value::Binary(data) => Ok(data),
value => Err(KbinErrorKind::ValueTypeMismatch(StandardType::Binary, value).into()),
}
}
}
#[cfg(feature = "try_from")]
impl TryFrom<Value> for Vec<u8> {
type Error = KbinError;
fn try_from(value: Value) -> Result<Self, Self::Error> {
value.into_binary()
}
}
impl From<Vec<u8>> for Value {