pub enum ParseError {
WordCount {
got: usize,
want: usize,
},
UnknownWord {
index: usize,
word: String,
suggestion: Option<&'static str>,
},
Checksum,
}Expand description
解析恢复码时的失败原因。
刻意区分得很细:每一种对用户的下一步动作都不同。笼统报「恢复码无效」 会让用户无从下手——他不知道该核对纸条、该数一遍词数,还是该承认拿错了 东西。
Variants§
WordCount
词数不对。
UnknownWord
某个词不在词表里。
带上下标与最接近的候选:用户抄错一个字母时,这能直接告诉他
「第 7 个词 acadmic 不在词表,是不是 academic?」,而不是让他把
26 个词重新核对一遍。
Fields
Checksum
词都认识,但整体校验和不匹配。
典型成因是两个词写反了顺序或抄错成了另一个合法的词——这两种 错误逐词检查发现不了,只有全局校验能抓到。
Trait Implementations§
Source§impl Clone for ParseError
impl Clone for ParseError
Source§impl Debug for ParseError
impl Debug for ParseError
Source§impl Display for ParseError
impl Display for ParseError
impl Eq for ParseError
Source§impl Error for ParseError
impl Error for ParseError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl PartialEq for ParseError
impl PartialEq for ParseError
impl StructuralPartialEq for ParseError
Auto Trait Implementations§
impl Forget for ParseError
impl Freeze for ParseError
impl RefUnwindSafe for ParseError
impl Send for ParseError
impl Sync for ParseError
impl Unpin for ParseError
impl UnsafeUnpin for ParseError
impl UnwindSafe for ParseError
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
Mutably borrows from an owned value. Read more