use thiserror::Error;
#[derive(Debug, Error)]
pub enum InvalidClaimError {
#[error("\"c2pa\" block not found")]
C2paBlockNotFound,
#[error("\"c2pa\" multiple claim boxes found in manifest")]
C2paMultipleClaimBoxes,
#[error("\"c2pa\" multiple manifest boxes of the same type found in manifest")]
C2paMultipleManifestBoxes,
#[error("claim superbox not found")]
ClaimSuperboxNotFound,
#[error("claim description box not found")]
ClaimDescriptionBoxNotFound,
#[error("more than one claim description box was found for {label}")]
DuplicateClaimBox { label: String },
#[error("claim cbor box not valid")]
ClaimBoxData,
#[error("claim version is too new, not supported")]
ClaimVersionTooNew,
#[error("claim version does not match JUMBF box label")]
ClaimBoxVersion,
#[error("claim description box was invalid")]
ClaimDescriptionBoxInvalid,
#[error("claim signature box was not found")]
ClaimSignatureBoxNotFound,
#[error("claim signature description box was not found")]
ClaimSignatureDescriptionBoxNotFound,
#[error("claim signature description box was invalid")]
ClaimSignatureDescriptionBoxInvalid,
#[error("assertion store superbox not found")]
AssertionStoreSuperboxNotFound,
#[error("the verifiable credentials store could not be read")]
VerifiableCredentialStoreInvalid,
#[error("the manifest contained a feature not support by version")]
UnsupportedFeature(String),
#[error(
"unexpected number of assertions in assertion store (expected {expected}, found {found})"
)]
AssertionCountMismatch { expected: usize, found: usize },
}