diff options
Diffstat (limited to 'src/eval/value.rs')
| -rw-r--r-- | src/eval/value.rs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/eval/value.rs b/src/eval/value.rs index 8867b38a..0e0d08a8 100644 --- a/src/eval/value.rs +++ b/src/eval/value.rs @@ -491,6 +491,17 @@ impl<T> Smart<T> { Self::Custom(x) => x, } } + + /// Returns the contained custom value or computes a default value. + pub fn unwrap_or_else<F>(self, f: F) -> T + where + F: FnOnce() -> T, + { + match self { + Self::Auto => f(), + Self::Custom(x) => x, + } + } } impl<T> Default for Smart<T> { |
