summaryrefslogtreecommitdiffstats
path: root/crates/runner/src/util/steal.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/runner/src/util/steal.rs')
-rw-r--r--crates/runner/src/util/steal.rs40
1 files changed, 0 insertions, 40 deletions
diff --git a/crates/runner/src/util/steal.rs b/crates/runner/src/util/steal.rs
deleted file mode 100644
index 91b2cdf..0000000
--- a/crates/runner/src/util/steal.rs
+++ /dev/null
@@ -1,40 +0,0 @@
-use std::ops::{Deref, DerefMut};
-
-#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
-pub struct Steal<T>(pub Option<T>);
-
-impl<T> Steal<T> {
- pub fn new(value: T) -> Steal<T> {
- Steal(Some(value))
- }
-
- pub fn steal(&mut self) -> T {
- self.0
- .take()
- .expect("Attempted to steal already stoken value")
- }
-}
-
-impl<T> From<T> for Steal<T> {
- fn from(value: T) -> Self {
- Steal::new(value)
- }
-}
-
-impl<T> Deref for Steal<T> {
- type Target = T;
-
- fn deref(&self) -> &Self::Target {
- self.0
- .as_ref()
- .expect("Attempted to dereference stolen value")
- }
-}
-
-impl<T> DerefMut for Steal<T> {
- fn deref_mut(&mut self) -> &mut Self::Target {
- self.0
- .as_mut()
- .expect("Attempted to dereference stolen value")
- }
-}