From 161928d92dd1dcb3e9eddfaa0240d44504811274 Mon Sep 17 00:00:00 2001 From: Matt Bilker Date: Thu, 13 Dec 2018 01:22:15 +0000 Subject: [PATCH] value: add TryFrom impl for Binary values --- src/value/mod.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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 {