From f4ca7d9464807fb8939390a41ffcdde0c21f32c4 Mon Sep 17 00:00:00 2001 From: Irene Knapp Date: Thu, 9 Jul 2026 14:33:10 -0700 Subject: move all the PermanentGraphicsState stuff into its own file Force-Push: yes Change-Id: I3600d1588ce7251b91e33a8956d89357fadda013 --- src/error.rs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/error.rs') diff --git a/src/error.rs b/src/error.rs index f3f1ca9..f034683 100644 --- a/src/error.rs +++ b/src/error.rs @@ -96,3 +96,36 @@ pub fn ignore_errors(mut body: impl FnMut() -> Result<()>) -> () { } } + +pub enum Acceptable { + Accepted(T), + Rejected(String), +} + +impl Acceptable { + #[allow(unused)] + pub fn is_accepted(&self) -> bool { + if let Acceptable::Accepted(_) = self { true } else { false } + } + + #[allow(unused)] + pub fn is_rejected(&self) -> bool { + if let Acceptable::Rejected(_) = self { true } else { false } + } + + #[allow(unused)] + pub fn unwrap(self) -> T { + if let Acceptable::Accepted(result) = self { + result + } else { + panic!("Unwrapped a rejected Acceptable."); + } + } + + pub fn require(self) -> Result { + match self { + Acceptable::Accepted(value) => Ok(value), + Acceptable::Rejected(message) => Err(Error { message }), + } + } +} -- cgit 1.4.1