canic_backup/manifest/validation/
mod.rs1mod binding;
8mod scalar;
9mod sections;
10
11use crate::manifest::{DeploymentBackupManifest, ManifestValidationError};
12
13use binding::{validate_consistency_against_deployment, validate_verification_against_deployment};
14use scalar::{validate_manifest_version, validate_nonempty};
15
16const SUPPORTED_MANIFEST_VERSION: u16 = 1;
17const SHA256_ALGORITHM: &str = "sha256";
18
19impl DeploymentBackupManifest {
20 pub fn validate(&self) -> Result<(), ManifestValidationError> {
22 validate_manifest_version(self.manifest_version)?;
23 validate_nonempty("backup_id", &self.backup_id)?;
24 validate_nonempty("created_at", &self.created_at)?;
25 self.tool.validate()?;
26 self.source.validate()?;
27 self.consistency.validate()?;
28 self.deployment.validate()?;
29 self.verification.validate()?;
30 validate_consistency_against_deployment(&self.consistency, &self.deployment)?;
31 validate_verification_against_deployment(&self.verification, &self.deployment)?;
32 Ok(())
33 }
34}