tpt_tokenizer_core/
error.rs1use alloc::string::String;
4use core::fmt;
5
6#[derive(Debug)]
8#[non_exhaustive]
9pub enum TokenizerError {
10 UnknownToken(String),
13 #[cfg(feature = "std")]
15 Io(std::io::Error),
16 MalformedFile(String),
18}
19
20impl fmt::Display for TokenizerError {
21 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
22 match self {
23 TokenizerError::UnknownToken(t) => write!(f, "unknown token: {t}"),
24 #[cfg(feature = "std")]
25 TokenizerError::Io(e) => write!(f, "I/O error: {e}"),
26 TokenizerError::MalformedFile(m) => write!(f, "malformed tokenizer file: {m}"),
27 }
28 }
29}
30
31impl core::error::Error for TokenizerError {
32 fn source(&self) -> Option<&(dyn core::error::Error + 'static)> {
33 #[cfg(feature = "std")]
34 if let TokenizerError::Io(e) = self {
35 return Some(e);
36 }
37 None
38 }
39}
40
41#[cfg(feature = "std")]
42impl From<std::io::Error> for TokenizerError {
43 fn from(e: std::io::Error) -> Self {
44 TokenizerError::Io(e)
45 }
46}