diff --git a/src/value/mod.rs b/src/value/mod.rs index acab7bc..9076eec 100644 --- a/src/value/mod.rs +++ b/src/value/mod.rs @@ -605,6 +605,22 @@ impl Value { value => Err(KbinErrorKind::ExpectedValueArray(value.clone()).into()), } } + + pub fn into_binary(self) -> Result, KbinError> { + match self { + Value::Binary(data) => Ok(data), + value => Err(KbinErrorKind::ValueTypeMismatch(StandardType::Binary, value).into()), + } + } +} + +#[cfg(feature = "try_from")] +impl TryFrom for Vec { + type Error = KbinError; + + fn try_from(value: Value) -> Result { + value.into_binary() + } } impl From> for Value {