44 lines
1.2 KiB
Rust
44 lines
1.2 KiB
Rust
//! Error types.
|
|
|
|
use core::fmt;
|
|
|
|
/// This error is returned by the [`StreamCipher`][crate::stream::StreamCipher]
|
|
/// trait methods.
|
|
///
|
|
/// Usually it's used in cases when stream cipher has reached the end
|
|
/// of a keystream, but also can be used if lengths of provided input
|
|
/// and output buffers are not equal.
|
|
#[derive(Copy, Clone, Debug)]
|
|
pub struct StreamCipherError;
|
|
|
|
impl fmt::Display for StreamCipherError {
|
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> {
|
|
f.write_str("Loop Error")
|
|
}
|
|
}
|
|
|
|
#[cfg(feature = "std")]
|
|
#[cfg_attr(docsrs, doc(cfg(feature = "std")))]
|
|
impl std::error::Error for StreamCipherError {}
|
|
|
|
/// 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 StreamCipherError {
|
|
fn from(_: OverflowError) -> StreamCipherError {
|
|
StreamCipherError
|
|
}
|
|
}
|
|
|
|
#[cfg(feature = "std")]
|
|
#[cfg_attr(docsrs, doc(cfg(feature = "std")))]
|
|
impl std::error::Error for OverflowError {}
|