haste_fhir_serialization_json/
errors.rs

1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum DeserializeError {
5    #[error("Missing required field: {0}")]
6    MissingRequiredField(String),
7    #[error("Failed to convert type '{0}'")]
8    FailedToConvertType(String),
9    #[error("Failed to parse JSON {0}")]
10    FailedToParseJSON(#[from] serde_json::Error),
11    #[error("Cannot deserialize as value a typechoice variant")]
12    CannotDeserializeTypeChoiceAsValue,
13    #[error("Unknown field encountered: {0}")]
14    UnknownField(String),
15    #[error("Invalid type encountered: {0}")]
16    InvalidType(String),
17    #[error("Duplicate type choice variant: {0}")]
18    DuplicateTypeChoiceVariant(String),
19    #[error("Invalid resource type: expected '{0}', found '{1}'")]
20    InvalidResourceType(String, String),
21    #[error("Invalid '{0}' found '{1}'")]
22    InvalidEnumVariant(String, String),
23    #[error("Invalid type choice variant: {0}")]
24    InvalidTypeChoiceVariant(String),
25    #[error("Cardinality violation: field '{0}' has invalid length.")]
26    CardinalityViolation(String),
27    #[error("Reference target validation failed: expected one of '{0:?}', found '{1}'")]
28    ReferenceTargetValidationFailed(Vec<String>, String),
29}