diff options
Diffstat (limited to 'src/success.rs')
-rw-r--r-- | src/success.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/success.rs b/src/success.rs new file mode 100644 index 0000000..c004d17 --- /dev/null +++ b/src/success.rs @@ -0,0 +1,25 @@ +use core::ops::Deref; + +pub const OK: Success = Success { ok: true }; +pub const FAIL: Success = Success { ok: false }; + +#[must_use] +pub struct Success { + pub ok: bool, +} + +pub struct Failure { + pub fail: bool, +} + +impl Deref for Success { + type Target = Failure; + + fn deref(&self) -> &Self::Target { + if self.ok { + &Failure { fail: false } + } else { + &Failure { fail: true } + } + } +} |