2022-10-13 21:02:59 +08:00
use meilisearch_types ::error ::{ Code , ErrorCode } ;
2022-10-02 19:24:59 +08:00
use thiserror ::Error ;
#[ derive(Debug, Error) ]
pub enum Error {
2022-10-03 22:12:01 +08:00
#[ error( " The version 1 of the dumps is not supported anymore. You can re-export your dump from a version between 0.21 and 0.24, or start fresh from a version 0.25 onwards. " ) ]
DumpV1Unsupported ,
2022-10-10 20:32:11 +08:00
#[ error( " Bad index name. " ) ]
2022-10-03 22:12:01 +08:00
BadIndexName ,
2022-10-10 20:32:11 +08:00
#[ error( " Malformed task. " ) ]
MalformedTask ,
2022-10-03 22:12:01 +08:00
2022-10-02 19:24:59 +08:00
#[ error(transparent) ]
Io ( #[ from ] std ::io ::Error ) ,
#[ error(transparent) ]
Serde ( #[ from ] serde_json ::Error ) ,
2022-10-04 00:50:06 +08:00
#[ error(transparent) ]
Uuid ( #[ from ] uuid ::Error ) ,
2022-10-02 19:24:59 +08:00
}
2022-10-13 21:02:59 +08:00
impl ErrorCode for Error {
fn error_code ( & self ) -> Code {
match self {
// Are these three really Internal errors?
2022-10-17 22:35:23 +08:00
// TODO look at that later.
2022-10-13 21:02:59 +08:00
Error ::Io ( _ ) = > Code ::Internal ,
Error ::Serde ( _ ) = > Code ::Internal ,
Error ::Uuid ( _ ) = > Code ::Internal ,
// all these errors should never be raised when creating a dump, thus no error code should be associated.
Error ::DumpV1Unsupported = > Code ::Internal ,
Error ::BadIndexName = > Code ::Internal ,
Error ::MalformedTask = > Code ::Internal ,
}
}
}