aboutsummaryrefslogtreecommitdiff
path: root/src/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/error.rs')
-rw-r--r--src/error.rs22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/error.rs b/src/error.rs
index 04541a5..85e6774 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -4,30 +4,34 @@ use fluent::FluentResource;
pub type Result<T> = StdResult<T, Error>;
+#[derive(Debug)]
pub enum Error {
- IoError(String)
+ IoError(std::io::Error),
+ LanguageIdentifierError(unic_langid::LanguageIdentifierError),
+ FluentError(Vec<fluent::FluentError>)
}
impl From<std::io::Error> for Error {
- fn from(value: std::io::Error) -> Self {
- todo!()
+ fn from(err: std::io::Error) -> Self {
+ Self::IoError(err)
}
}
impl From<(FluentResource, Vec<fluent_syntax::parser::ParserError>)> for Error {
- fn from(value: (FluentResource, Vec<fluent_syntax::parser::ParserError>)) -> Self {
- todo!()
+ fn from(err: (FluentResource, Vec<fluent_syntax::parser::ParserError>)) -> Self {
+ let err = err.1.iter().map(|e| fluent::FluentError::ParserError(e.clone())).collect();
+ Self::FluentError(err)
}
}
impl From<Vec<fluent::FluentError>> for Error {
- fn from(value: Vec<fluent::FluentError>) -> Self {
- todo!()
+ fn from(err: Vec<fluent::FluentError>) -> Self {
+ Self::FluentError(err)
}
}
impl From<unic_langid::LanguageIdentifierError> for Error {
- fn from(value: unic_langid::LanguageIdentifierError) -> Self {
- todo!()
+ fn from(err: unic_langid::LanguageIdentifierError) -> Self {
+ Self::LanguageIdentifierError(err)
}
}