lib_humus/language/
loader_error.rs1use fluent::FluentError;
6use fluent_syntax::parser::ParserError;
7use lib_humus_configuration::HumusConfigError;
8
9use std::fmt::Debug;
10use std::path::PathBuf;
11
12use crate::language::UnicodeLanguageIdentifier;
13
14#[derive(Debug, thiserror::Error)]
16pub enum LanguageEngineLoaderError {
17 #[error("Language base directory {path:?} is not a directory or does not exist.")]
20 BaseDirectoryDoesNotExist {
21 path: PathBuf,
23 is_other: bool,
25 },
26 #[error("Problem reading languages manifest file: {0}")]
28 ErrorReadingManifest(#[source] HumusConfigError),
29 #[error(
31 "The default language {default_language} is not declared as a valid language in the manifest file. Please correct the `default_language` or add a `[language.{default_language}]` section."
32 )]
33 DefaultLanguageNotInManifest {
34 default_language: UnicodeLanguageIdentifier,
36 },
37 #[error(
39 "The default language {default_language} is declared in the manifest file with the is_hidden flag set, this is not allowed. Please correct the `default_language` or remove its is_hidden flag."
40 )]
41 DefaultLanguageMustNotBeHidden {
42 default_language: UnicodeLanguageIdentifier,
44 },
45 #[error("Problem reading language file for {language} at {path:?}: {io_error}")]
47 ErrorReadingLanguageFile {
48 language: UnicodeLanguageIdentifier,
50 path: PathBuf,
52 #[source]
54 io_error: std::io::Error,
55 },
56 #[error("Error parsing language file for language {language} at {path:?}: {errors:#?}")]
58 ErrorParsingLanguageFile {
59 language: UnicodeLanguageIdentifier,
61 path: PathBuf,
63 errors: Vec<ParserError>,
65 },
66 #[error(
68 "Error adding language file to bundle for language {language} at {path:?}: {errors:#?}"
69 )]
70 ErrorAddingLanguageFile {
71 language: UnicodeLanguageIdentifier,
73 path: PathBuf,
75 errors: Vec<FluentError>,
77 },
78}