blob: 9474203ee05f986bcef5699a3d173a3b72ee9930 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
use std::{error::Error, fmt::Display};
#[derive(Debug, Clone)]
pub struct WordTooLongError {
word: String,
}
impl WordTooLongError {
pub fn new(word: impl Into<String>) -> WordTooLongError {
WordTooLongError { word: word.into() }
}
}
impl Display for WordTooLongError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_fmt(format_args!(
"The word \"{}\" is too long for the current terminal size or longer than 80 characters.",
self.word
))
}
}
impl Error for WordTooLongError {}
#[derive(Debug)]
pub struct TerminalTooSmallError;
impl Display for TerminalTooSmallError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(
"The terminal size is too small. Min column count is 65 and minimum row count is 15.",
)
}
}
#[derive(Debug)]
pub enum TyperError {
TerminalTooSmallError(TerminalTooSmallError),
WordTooLongError(WordTooLongError),
}
impl Display for TyperError {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
let text = match self {
TyperError::TerminalTooSmallError(e) => e.to_string(),
TyperError::WordTooLongError(e) => e.to_string(),
};
f.write_str(&text)
}
}
|
XMR address: 854DmXNrxULU3ZFJVs4Wc8PFhbq29RhqHhY8W6cdWrtFN3qmooKyyeYPcDzZTNRxphhJ5UzASQfAdEMwSteVqymk28aLhqj