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;