pub fn eval(&self) -> Result<Gc<NixValue>, EvalError> {
        let mut value_borrow = self.value.borrow_mut();
        if let Some(ref value) = *value_borrow {
            Ok(value.clone())
        } else {
            // We can later build a stack trace by wrapping errors here
            let value = self.eval_uncached()?;
            *value_borrow = Some(value.clone());
            Ok(value)
        }
    }
/// Lazily evaluate a Expr, caching its value
Lazily evaluate a Expr, caching its value
Lazily evaluate a Expr caching its value
pub fn eval(&self) -> Result<Gc<NixValue>, EvalError> {
        let mut value_borrow = self.value.borrow_mut();
        if let Some(ref value) = *value_borrow {
            Ok(value.clone())
        } else {
            // We can later build a stack trace by wrapping errors here
            let value = self.eval_uncached()?;
            *value_borrow = Some(value.clone());
            Ok(value)
        }
    }
pub fn eval ( & self ) -> Result < Gc < NixValue > , EvalError > { let mut value_borrow = self . value . borrow_mut ( ) ; if let Some ( ref value ) = * value_borrow { Ok ( value . clone ( ) ) } else { // We can later build a stack trace by wrapping errors here let value = self . eval_uncached ( ) ? ; * value_borrow = Some ( value . clone ( ) ) ; Ok ( value ) } }
Lazily evaluate a Expr, caching its value
Lazily evaluate a Expr caching its value
&self
&self