hashes: Fix leaf error type
Leaf error types should typically have private fields, provide accessor functions, and not use `non_exhaustive`.
This commit is contained in:
parent
162094322f
commit
2af764e859
|
@ -234,12 +234,19 @@ pub trait Hash:
|
|||
|
||||
/// Attempted to create a hash from an invalid length slice.
|
||||
#[derive(Debug, Clone, PartialEq, Eq)]
|
||||
#[non_exhaustive]
|
||||
pub struct FromSliceError {
|
||||
expected: usize,
|
||||
got: usize,
|
||||
}
|
||||
|
||||
impl FromSliceError {
|
||||
/// Returns the expected slice length.
|
||||
pub fn expected_length(&self) -> usize { self.expected }
|
||||
|
||||
/// Returns the invalid slice length.
|
||||
pub fn invalid_length(&self) -> usize { self.got }
|
||||
}
|
||||
|
||||
impl fmt::Display for FromSliceError {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
write!(f, "invalid slice length {} (expected {})", self.got, self.expected)
|
||||
|
@ -247,9 +254,7 @@ impl fmt::Display for FromSliceError {
|
|||
}
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
impl std::error::Error for FromSliceError {
|
||||
fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { None }
|
||||
}
|
||||
impl std::error::Error for FromSliceError {}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
|
|
Loading…
Reference in New Issue