summaryrefslogtreecommitdiffstats
path: root/rust/vendor/cipher/src/errors.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rust/vendor/cipher/src/errors.rs')
-rw-r--r--rust/vendor/cipher/src/errors.rs50
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 {}