diff options
| author | Irene Knapp <ireneista@irenes.space> | 2026-07-09 14:33:10 -0700 |
|---|---|---|
| committer | Irene Knapp <ireneista@irenes.space> | 2026-07-09 14:33:10 -0700 |
| commit | f4ca7d9464807fb8939390a41ffcdde0c21f32c4 (patch) | |
| tree | 447734be37c0ab45cd5580cd0e2682b8a7b3354d /src/error.rs | |
| parent | fae3cf53db4ecd73f59dcd198c24a964407f92d5 (diff) | |
move all the PermanentGraphicsState stuff into its own file
Force-Push: yes Change-Id: I3600d1588ce7251b91e33a8956d89357fadda013
Diffstat (limited to 'src/error.rs')
| -rw-r--r-- | src/error.rs | 33 |
1 files changed, 33 insertions, 0 deletions
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<T> { + Accepted(T), + Rejected(String), +} + +impl<T> Acceptable<T> { + #[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<T> { + match self { + Acceptable::Accepted(value) => Ok(value), + Acceptable::Rejected(message) => Err(Error { message }), + } + } +} |