use num_enum::FromPrimitive; use thiserror::Error; #[derive(Error, Debug, Eq, PartialEq, FromPrimitive)] #[repr(u16)] pub enum SSVErrorCodes { #[error("Le fichier `tablebin.smc` est inaccessible en lecture (inexistant ou pas de droits d'accès).")] FileMissingTablebinMsc = 0xF610, // tablebin.smc #[error("Le fichier `scripts.sms` est inaccessible en lecture (inexistant ou pas de droits d'accès).")] FileMissingScriptsSms = 0xF611, // scripts.sms #[error("Le fichier `tablebin.ssv` est inaccessible en lecture (inexistant ou pas de droits d'accès).")] FileMissingTablebinSsv = 0xF612, // tablebin.ssv #[error("Le fichier `script.ssv` est inaccessible en lecture (inexistant ou pas de droits d'accès).")] FileMissingScriptSsv = 0xF613, // script.ssv #[error("La version du fichier `tablebin.smc` est incompatible avec la bibliothèque des SSV.")] FileVersionIncompatibleTablebinMsc = 0xF620, // tablebin.smc #[error("La version du fichier `scripts.sms` est incompatible avec la bibliothèque des SSV.")] FileVersionIncompatibleScriptsSms = 0xF621, // scripts.sms #[error("La version du fichier `tablebin.ssv` est incompatible avec la bibliothèque des SSV.")] FileVersionIncompatibleTablebinSsv = 0xF622, // tablebin.ssv #[error("La version du fichier `script.ssv` est incompatible avec la bibliothèque des SSV.")] FileVersionIncompatibleScriptSsv = 0xF623, // script.ssv #[error("L'intégrité du fichier `tablebin.smc` est incorrecte.")] FileIntegrityIncorrectTablebinMsc = 0xF630, // tablebin.smc #[error("L'intégrité du fichier `scripts.sms` est incorrecte.")] FileIntegrityIncorrectScriptsSms = 0xF631, // scripts.sms #[error("L'intégrité du fichier `tablebin.ssv` est incorrecte.")] FileIntegrityIncorrectTablebinSsv = 0xF632, // tablebin.ssv #[error("L'intégrité du fichier `script.ssv` est incorrecte.")] FileIntegrityIncorrectScriptSsv = 0xF633, // script.ssv #[error("La structure interne du fichier `tablebin.smc` est invalide.")] FileStructureInvalidTablebinMsc = 0xF640, // tablebin.smc #[error("La structure interne du fichier `scripts.sms` est invalide.")] FileStructureInvalidScriptsSms = 0xF641, // scripts.sms #[error("La structure interne du fichier `tablebin.ssv` est invalide.")] FileStructureInvalidTablebinSsv = 0xF642, // tablebin.ssv #[error("La structure interne du fichier `script.ssv` est invalide.")] FileStructureInvalidScriptSsv = 0xF643, // script.ssv #[error("Le fichier `tablebin.smc` n'a pas pu être chargé en mémoire. Essayez de libérer de la mémoire.")] FileLoadFailedTablebinMsc = 0xF650, // tablebin.smc #[error("Le fichier `scripts.sms` n'a pas pu être chargé en mémoire. Essayez de libérer de la mémoire.")] FileLoadFailedScriptsSms = 0xF651, // scripts.sms #[error("Le fichier `tablebin.ssv` n'a pas pu être chargé en mémoire. Essayez de libérer de la mémoire.")] FileLoadFailedTablebinSsv = 0xF652, // tablebin.ssv #[error("Le fichier `script.ssv` n'a pas pu être chargé en mémoire. Essayez de libérer de la mémoire.")] FileLoadFailedScriptSsv = 0xF653, // script.ssv #[error("Le nom du fichier `tablebin.smc` est invalide.")] FileNameInvalidTablebinMsc = 0xF660, // tablebin.smc #[error("Le nom du fichier `scripts.sms` est invalide.")] FileNameInvalidScriptsSms = 0xF661, // scripts.sms #[error("Le nom du fichier `tablebin.ssv` est invalide.")] FileNameInvalidTablebinSsv = 0xF662, // tablebin.ssv #[error("Le nom du fichier `script.ssv` est invalide.")] FileNameInvalidScriptSsv = 0xF663, // script.ssv #[error("La fonction Initialiser Librairie est déjà appelée.")] FunctionInitLib2AlreadyCalled = 0xF670, // Warning #[error("Le fichier SESAM.INI est inaccessible en lecture (fichier ou droit d’accès manquant) ou ne contient pas le chemin des tables binaires des SSV.")] SesamIniMissingFileOrTablebinPath = 0xF680, #[error("Le chemin du répertoire de travail est absent du fichier SESAM.INI.")] SesamIniMissingWorkDir = 0xF6F1, #[error("Les fichiers d’extension adm ne sont pas accessibles en écriture.")] AdmFilesNotWritable = 0xF6F2, // Warning #[error("Aucune version de FSV du socle technique trouvé. Vérifier que la version du fichier script.sms est bonne.")] NoFsvVersionFound = 0xF6F4, #[error("Librairie SGD absente ou incomplète.")] LibraryMissingOrIncompleteSGD = 0xF6F5, #[error("Librairie SMC absente ou incomplète.")] LibraryMissingOrIncompleteSMC = 0xF6F6, #[error("Librairie SJS absente ou incomplète.")] LibraryMissingOrIncompleteSJS = 0xF6F7, #[error("Librairie SMS absente ou incomplète.")] LibraryMissingOrIncompleteSMS = 0xF6F8, #[error("Section MGC absente / clé RepertoireConfigTrace absente / fichier log4crc.xml non trouvé à l’emplacement indiqué par la clé RepertoireConfigTrace du fichier SESAM.INI.")] SesamIniTracingConfigMissing = 0xFF22, // Warning #[error("Interface Full PC/SC : problème de chargement de la librairie cryptographique ou erreur retournée par la librairie cryptographique.")] PCSCInterfaceCryptoLibraryError = 0xFF25, #[error("Valorisation incorrecte des paramètres de gestion de l'accès aux ressources dans le SESAM.INI. Vérifier les valeurs des clés tempoexclusivite, repetitionexclusivite, tempoexclusivitePCSC, repetitionexclusivitePCSC")] SesamIniResourceAccessParamsIncorrect = 0xFF2A, #[num_enum(catch_all)] #[error("Erreur inattendue de la librairie SSV (code d'erreur: {0}).")] Unexpected(u16), }