generate_error_imports!(); use std::convert::From; #[derive(Debug, Clone, Eq, PartialEq, Ord, PartialOrd, Copy)] pub struct CustomErrorData {} generate_custom_error_types!(StoreError, StoreErrorKind, CustomErrorData, ConfigurationError => "Store Configuration Error", CreateStoreDirDenied => "Creating store directory implicitely denied", FileError => "File Error", IoError => "IO Error", IdLocked => "ID locked", IdNotFound => "ID not found", OutOfMemory => "Out of Memory", FileNotFound => "File corresponding to ID not found", FileNotCreated => "File corresponding to ID could not be created", FileNotWritten => "File corresponding to ID could not be written to", FileNotSeeked => "File corresponding to ID could not be seeked", FileNotRemoved => "File corresponding to ID could not be removed", FileNotRenamed => "File corresponding to ID could not be renamed", FileNotCopied => "File could not be copied", DirNotCreated => "Directory/Directories could not be created", StorePathExists => "Store path exists", StorePathCreate => "Store path create", LockError => "Error locking datastructure", LockPoisoned => "The internal Store Lock has been poisoned", EntryAlreadyBorrowed => "Entry is already borrowed", EntryAlreadyExists => "Entry already exists", MalformedEntry => "Entry has invalid formatting, missing header", HeaderPathSyntaxError => "Syntax error in accessor string", HeaderPathTypeFailure => "Header has wrong type for path", HeaderKeyNotFound => "Header Key not found", HeaderTypeFailure => "Header type is wrong", HookRegisterError => "Hook register error", AspectNameNotFoundError => "Aspect name not found", HookExecutionError => "Hook execution error", PreHookExecuteError => "Pre-Hook execution error", PostHookExecuteError => "Post-Hook execution error", StorePathLacksVersion => "The supplied store path has no version part", GlobError => "glob() error", EncodingError => "Encoding error", StorePathError => "Store Path error", EntryRenameError => "Entry rename error", StoreIdHandlingError => "StoreId handling error", StoreIdLocalPartAbsoluteError => "StoreId 'id' part is absolute (starts with '/') which is not allowed", StoreIdBuildFromFullPathError => "Building StoreId from full file path failed", StoreIdHasNoBaseError => "StoreId has no 'base' part", CreateCallError => "Error when calling create()", RetrieveCallError => "Error when calling retrieve()", GetCallError => "Error when calling get()", GetAllVersionsCallError => "Error when calling get_all_versions()", RetrieveForModuleCallError => "Error when calling retrieve_for_module()", UpdateCallError => "Error when calling update()", RetrieveCopyCallError => "Error when calling retrieve_copy()", DeleteCallError => "Error when calling delete()", MoveCallError => "Error when calling move()", MoveByIdCallError => "Error when calling move_by_id()" ); generate_result_helper!(StoreError, StoreErrorKind); generate_option_helper!(StoreError, StoreErrorKind); generate_custom_error_types!(ParserError, ParserErrorKind, CustomErrorData, TOMLParserErrors => "Several TOML-Parser-Errors", MissingMainSection => "Missing main section", MissingVersionInfo => "Missing version information in main section", NonTableInBaseTable => "A non-table was found in the base table", HeaderInconsistency => "The header is inconsistent" ); impl From for StoreError { fn from(ps: ParserError) -> StoreError { StoreError { err_type: StoreErrorKind::MalformedEntry, cause: Some(Box::new(ps)), custom_data: None, } } } impl From<::std::io::Error> for StoreError { fn from(ps: ::std::io::Error) -> StoreError { StoreError { err_type: StoreErrorKind::IoError, cause: Some(Box::new(ps)), custom_data: None, } } }