From 247a8ca5bb3c7dc374bce8217e7c9cf1987280d6 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Sun, 5 Jan 2020 16:20:26 +0100 Subject: [PATCH] src/backup/manifest.rs: impl TryFrom DataBlob --- src/backup/manifest.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/backup/manifest.rs b/src/backup/manifest.rs index 7eaa1704..c1e66de1 100644 --- a/src/backup/manifest.rs +++ b/src/backup/manifest.rs @@ -100,6 +100,17 @@ impl BackupManifest { } } +impl TryFrom for BackupManifest { + type Error = Error; + + fn try_from(blob: super::DataBlob) -> Result { + let data = blob.decode(None) + .map_err(|err| format_err!("decode backup manifest blob failed - {}", err))?; + let json: Value = serde_json::from_slice(&data[..]) + .map_err(|err| format_err!("unable to parse backup manifest json - {}", err))?; + BackupManifest::try_from(json) + } +} impl TryFrom for BackupManifest { type Error = Error;