pub enum FileValidationError {
NotInAssetMap {
uuid: String,
original_file_name: Option<String>,
},
Missing {
uuid: String,
path: PathBuf,
},
SizeMismatch {
uuid: String,
path: PathBuf,
expected: u64,
actual: u64,
},
HashMismatch {
uuid: String,
path: PathBuf,
expected: String,
actual: String,
},
Io {
uuid: String,
path: PathBuf,
message: String,
},
DuplicatePklAssetId {
uuid: String,
pkl_id: String,
},
UnknownPklNamespace {
pkl_id: String,
namespace: String,
},
AssetMapHasNoPackingList,
PklIdNotInAssetMap {
pkl_id: String,
},
}Expand description
Errors found during PKL file manifest / hash / cross-reference validation.
Per SMPTE ST 2067-2 §7-9, the AssetMap, PKL, and CPL must maintain consistent cross-references. These errors describe structural violations.
Variants§
NotInAssetMap
PKL lists an asset UUID that has no entry in the AssetMap (ST 2067-2 §7).
Missing
File expected on disk but not found.
SizeMismatch
File exists but its byte size differs from the PKL declaration.
HashMismatch
Hash digest does not match PKL hash (SHA-1 or SHA-256).
Io
I/O error while reading the file for hashing.
DuplicatePklAssetId
Same asset UUID appears more than once in a single PKL (ST 2067-2 §9).
UnknownPklNamespace
PKL document carries a namespace URI we don’t recognise. Per ST 429-8 (the canonical PKL standard) and ST 2067-2:2016, the only acceptable values are the published namespaces; an unrecognised one breaks downstream tool interoperability.
AssetMapHasNoPackingList
The AssetMap has no asset carrying <PackingList>true</PackingList>,
so no PKL document is declared. ST 429-9 §6.3 requires the
AssetMap to identify which assets are PKLs.
PklIdNotInAssetMap
A PKL document was parsed but its Id does not appear as a
PackingList-flagged asset in the AssetMap. ST 429-9 §6.3
requires every PKL to be declared in the AssetMap.