greed 0.5.2

A rust tool to automate trades 📈
Documentation
pub trait BooleanWhen {
    fn when_false<F: FnOnce()>(self, f: F) -> Self;
    #[allow(dead_code)]
    fn when_true<F: FnOnce()>(self, f: F) -> Self;
}

impl BooleanWhen for bool {
    fn when_false<F: FnOnce()>(self, f: F) -> Self {
        if !self {
            f();
        }
        return self;
    }

    fn when_true<F: FnOnce()>(self, f: F) -> Self {
        if self {
            f();
        }
        return self;
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_when_false_false() {
        let mut value = 0;
        let result = false.when_false(|| value = 1);
        assert_eq!(result, false);
        assert_eq!(value, 1);
    }

    #[test]
    fn test_when_false_true() {
        let mut value = 0;
        let result = true.when_false(|| value = 1);
        assert_eq!(result, true);
        assert_eq!(value, 0);
    }

    #[test]
    fn test_when_true_false() {
        let mut value = 0;
        let result = false.when_true(|| value = 1);
        assert_eq!(result, false);
        assert_eq!(value, 0);
    }

    #[test]
    fn test_when_true_true() {
        let mut value = 0;
        let result = true.when_true(|| value = 1);
        assert_eq!(result, true);
        assert_eq!(value, 1);
    }
}