diff --git a/src/errors.rs b/src/errors.rs index a62059d..99a9dd7 100644 --- a/src/errors.rs +++ b/src/errors.rs @@ -1,6 +1,23 @@ +use std::fmt; + #[derive(Debug)] pub enum FBError { DecodeError, InvalidKey, InvalidParams, } + +impl fmt::Display for FBError { + + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + let message = match self { + FBError::DecodeError => "Invalid input", + FBError::InvalidKey => "Invalid Key used", + FBError::InvalidParams => "Keybase len(k) or Cipher len(n) out of bounds. Valid bounds: (2 <= k <= n)", + }; + + f.write_fmt(format_args!("{message}")) + } +} + +impl std::error::Error for FBError {}