pub enum PackError {
NotFound {
language: String,
searched: Vec<PathBuf>,
},
Incomplete {
language: String,
missing: PathBuf,
},
Unreadable {
path: PathBuf,
detail: String,
},
Malformed {
path: PathBuf,
detail: String,
},
}Expand description
Why a pack could not be used.
Separate variants rather than one string because the caller acts on them differently: a missing pack is an offer to install, a malformed one is a bug report against whoever shipped it, and neither should read as “the spell checker is broken”.
Variants§
NotFound
No .aff/.dic pair for this language anywhere that was looked.
Incomplete
Half a pack: one file of the pair is there and the other is not.
Unreadable
On disk but unreadable — permissions, a broken symlink, a bad encoding.
Malformed
Readable, and rejected by the parser.
Real dictionaries carry real defects. The 2013 Latin pack has two lines
reading SFK where SFX belongs, so its affix header promises 129
rows and the parser finds 2. Hunspell skips a line it does not
recognise and Nuspell does not, which is why a pack can work in
LibreOffice and fail here – and why saying which file and which line
matters more than the parser’s own wording.
Implementations§
Trait Implementations§
Source§impl Error for PackError
impl Error for PackError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for PackError
impl RefUnwindSafe for PackError
impl Send for PackError
impl Sync for PackError
impl Unpin for PackError
impl UnsafeUnpin for PackError
impl UnwindSafe for PackError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
Source§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
self file descriptor.Source§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
Source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: Sized + AsFilelike,
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: Sized + AsFilelike,
self file descriptor. Read moreSource§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreimpl<T> LSend for T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.