use crate::core::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ExecutionFaultCode {
#[serde(rename = "DELIVERY_FAILURE")]
DeliveryFailure,
#[serde(rename = "FAILED_TO_EXTRACT_BUSINESS_IDENTIFIERS")]
FailedToExtractBusinessIdentifiers,
#[serde(rename = "FAILED_TO_FIND_GUIDE")]
FailedToFindGuide,
#[serde(rename = "FAILED_TO_FIND_LOCAL_PROFILE")]
FailedToFindLocalProfile,
#[serde(rename = "FAILED_TO_FIND_PARTNER_PROFILE")]
FailedToFindPartnerProfile,
#[serde(rename = "FAILED_TO_FIND_PARTNERSHIP")]
FailedToFindPartnership,
#[serde(rename = "FAILED_TO_FIND_PROFILES")]
FailedToFindProfiles,
#[serde(rename = "FAILED_TO_FIND_RECEIVER_PROFILE")]
FailedToFindReceiverProfile,
#[serde(rename = "FAILED_TO_FIND_SENDER_PROFILE")]
FailedToFindSenderProfile,
#[serde(rename = "FAILED_TO_FIND_CONNECTION")]
FailedToFindConnection,
#[serde(rename = "FAILED_TO_GENERATE_CONTROL_NUMBERS")]
FailedToGenerateControlNumbers,
#[serde(rename = "FAILED_TO_PARSE")]
FailedToParse,
#[serde(rename = "FAILED_TO_PARSE_METADATA")]
FailedToParseMetadata,
#[serde(rename = "FAILED_TO_TRANSLATE")]
FailedToTranslate,
#[serde(rename = "FAILED_TO_ACK")]
FailedToAck,
#[serde(rename = "FAILED_TO_ACK_INTERCHANGE")]
FailedToAckInterchange,
#[serde(rename = "FILE_NOT_FOUND")]
FileNotFound,
#[serde(rename = "INVALID_EVENT")]
InvalidEvent,
#[serde(rename = "INVALID_CONFIGURATION")]
InvalidConfiguration,
#[serde(rename = "MISMATCHED_PARTNERSHIP_CONNECTION")]
MismatchedPartnershipConnection,
#[serde(rename = "MISSING_FUNCTIONAL_GROUP_CONTROL_NUMBER")]
MissingFunctionalGroupControlNumber,
#[serde(rename = "MISSING_FUNCTIONAL_GROUP_RELEASE")]
MissingFunctionalGroupRelease,
#[serde(rename = "MISSING_INTERCHANGE_CONTROL_NUMBER")]
MissingInterchangeControlNumber,
#[serde(rename = "MISSING_TRANSACTION_SET_CONTROL_NUMBER")]
MissingTransactionSetControlNumber,
#[serde(rename = "MISSING_RECEIVER_ID")]
MissingReceiverId,
#[serde(rename = "MISSING_RECEIVER_QUALIFIER")]
MissingReceiverQualifier,
#[serde(rename = "MISSING_SENDER_ID")]
MissingSenderId,
#[serde(rename = "MISSING_SENDER_QUALIFIER")]
MissingSenderQualifier,
#[serde(rename = "MULTIPLE_MATCHING_GUIDES")]
MultipleMatchingGuides,
#[serde(rename = "MULTIPLE_MATCHING_TRANSACTION_SETTINGS")]
MultipleMatchingTransactionSettings,
#[serde(rename = "MULTIPLE_PARTNERSHIPS")]
MultiplePartnerships,
#[serde(rename = "NO_TRANSLATION_OUTPUT")]
NoTranslationOutput,
#[serde(rename = "NO_TRANSACTION_SETS")]
NoTransactionSets,
#[serde(rename = "NOT_SUPPORTED")]
NotSupported,
#[serde(rename = "NO_FUNCTIONAL_GROUPS")]
NoFunctionalGroups,
#[serde(rename = "NO_USAGE_INDICATOR_CODE")]
NoUsageIndicatorCode,
#[serde(rename = "PREVIOUSLY_RETRIED")]
PreviouslyRetried,
#[serde(rename = "TRANSLATION_ERROR")]
TranslationError,
#[serde(rename = "UNKNOWN_ERROR")]
UnknownError,
#[serde(untagged)]
UnknownValue(String),
}
impl std::fmt::Display for ExecutionFaultCode {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::DeliveryFailure => write!(f, "DELIVERY_FAILURE"),
Self::FailedToExtractBusinessIdentifiers => write!(f, "FAILED_TO_EXTRACT_BUSINESS_IDENTIFIERS"),
Self::FailedToFindGuide => write!(f, "FAILED_TO_FIND_GUIDE"),
Self::FailedToFindLocalProfile => write!(f, "FAILED_TO_FIND_LOCAL_PROFILE"),
Self::FailedToFindPartnerProfile => write!(f, "FAILED_TO_FIND_PARTNER_PROFILE"),
Self::FailedToFindPartnership => write!(f, "FAILED_TO_FIND_PARTNERSHIP"),
Self::FailedToFindProfiles => write!(f, "FAILED_TO_FIND_PROFILES"),
Self::FailedToFindReceiverProfile => write!(f, "FAILED_TO_FIND_RECEIVER_PROFILE"),
Self::FailedToFindSenderProfile => write!(f, "FAILED_TO_FIND_SENDER_PROFILE"),
Self::FailedToFindConnection => write!(f, "FAILED_TO_FIND_CONNECTION"),
Self::FailedToGenerateControlNumbers => write!(f, "FAILED_TO_GENERATE_CONTROL_NUMBERS"),
Self::FailedToParse => write!(f, "FAILED_TO_PARSE"),
Self::FailedToParseMetadata => write!(f, "FAILED_TO_PARSE_METADATA"),
Self::FailedToTranslate => write!(f, "FAILED_TO_TRANSLATE"),
Self::FailedToAck => write!(f, "FAILED_TO_ACK"),
Self::FailedToAckInterchange => write!(f, "FAILED_TO_ACK_INTERCHANGE"),
Self::FileNotFound => write!(f, "FILE_NOT_FOUND"),
Self::InvalidEvent => write!(f, "INVALID_EVENT"),
Self::InvalidConfiguration => write!(f, "INVALID_CONFIGURATION"),
Self::MismatchedPartnershipConnection => write!(f, "MISMATCHED_PARTNERSHIP_CONNECTION"),
Self::MissingFunctionalGroupControlNumber => write!(f, "MISSING_FUNCTIONAL_GROUP_CONTROL_NUMBER"),
Self::MissingFunctionalGroupRelease => write!(f, "MISSING_FUNCTIONAL_GROUP_RELEASE"),
Self::MissingInterchangeControlNumber => write!(f, "MISSING_INTERCHANGE_CONTROL_NUMBER"),
Self::MissingTransactionSetControlNumber => write!(f, "MISSING_TRANSACTION_SET_CONTROL_NUMBER"),
Self::MissingReceiverId => write!(f, "MISSING_RECEIVER_ID"),
Self::MissingReceiverQualifier => write!(f, "MISSING_RECEIVER_QUALIFIER"),
Self::MissingSenderId => write!(f, "MISSING_SENDER_ID"),
Self::MissingSenderQualifier => write!(f, "MISSING_SENDER_QUALIFIER"),
Self::MultipleMatchingGuides => write!(f, "MULTIPLE_MATCHING_GUIDES"),
Self::MultipleMatchingTransactionSettings => write!(f, "MULTIPLE_MATCHING_TRANSACTION_SETTINGS"),
Self::MultiplePartnerships => write!(f, "MULTIPLE_PARTNERSHIPS"),
Self::NoTranslationOutput => write!(f, "NO_TRANSLATION_OUTPUT"),
Self::NoTransactionSets => write!(f, "NO_TRANSACTION_SETS"),
Self::NotSupported => write!(f, "NOT_SUPPORTED"),
Self::NoFunctionalGroups => write!(f, "NO_FUNCTIONAL_GROUPS"),
Self::NoUsageIndicatorCode => write!(f, "NO_USAGE_INDICATOR_CODE"),
Self::PreviouslyRetried => write!(f, "PREVIOUSLY_RETRIED"),
Self::TranslationError => write!(f, "TRANSLATION_ERROR"),
Self::UnknownError => write!(f, "UNKNOWN_ERROR"),
Self::UnknownValue(s) => write!(f, "{s}"),
}
}
}
impl Default for ExecutionFaultCode {
fn default() -> ExecutionFaultCode {
Self::DeliveryFailure
}
}