diff options
Diffstat (limited to 'rust/vendor/cipher/src/errors.rs')
-rw-r--r-- | rust/vendor/cipher/src/errors.rs | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/rust/vendor/cipher/src/errors.rs b/rust/vendor/cipher/src/errors.rs new file mode 100644 index 0000000..f527365 --- /dev/null +++ b/rust/vendor/cipher/src/errors.rs @@ -0,0 +1,50 @@ +//! Error types. + +use core::fmt; + +/// The error type returned when stream cipher has reached the end of a keystream. +#[derive(Copy, Clone, Debug)] +pub struct LoopError; + +impl fmt::Display for LoopError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { + f.write_str("Loop Error") + } +} + +#[cfg(feature = "std")] +impl std::error::Error for LoopError {} + +/// The error type returned when key and/or nonce used in stream cipher +/// initialization had an invalid length. +#[derive(Copy, Clone, Debug)] +pub struct InvalidLength; + +impl fmt::Display for InvalidLength { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { + f.write_str("Loop Error") + } +} + +#[cfg(feature = "std")] +impl std::error::Error for InvalidLength {} + +/// The error type returned when a cipher position can not be represented +/// by the requested type. +#[derive(Copy, Clone, Debug)] +pub struct OverflowError; + +impl fmt::Display for OverflowError { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { + f.write_str("Overflow Error") + } +} + +impl From<OverflowError> for LoopError { + fn from(_: OverflowError) -> LoopError { + LoopError + } +} + +#[cfg(feature = "std")] +impl std::error::Error for OverflowError {} |