From a088fb39422100c13d825e2220acb3282d8bd5e0 Mon Sep 17 00:00:00 2001 From: Mroik Date: Wed, 29 Jan 2025 20:45:40 +0100 Subject: Move error logic into its own crate --- src/error.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/error.rs (limited to 'src/error.rs') diff --git a/src/error.rs b/src/error.rs new file mode 100644 index 0000000..0da2cf7 --- /dev/null +++ b/src/error.rs @@ -0,0 +1,23 @@ +use std::{error::Error, fmt::Display}; + +#[derive(Debug)] +pub struct WordTooLongError { + word: String, +} + +impl WordTooLongError { + pub fn new(word: impl Into) -> WordTooLongError { + WordTooLongError { word: word.into() } + } +} + +impl Display for WordTooLongError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.write_fmt(format_args!( + "The word \"{}\" is too long for the current terminal size", + self.word + )) + } +} + +impl Error for WordTooLongError {} -- cgit v1.3