greed 0.5.2

A rust tool to automate trades 📈
Documentation
use std::fmt::Display;

#[derive(Debug, PartialEq)]
pub enum SkipReason {
    ConditionsUnsatisfied,
    NoTargetAssets,
    Unknown,
}

impl SkipReason {
    pub fn as_str(&self) -> &'static str {
        match self {
            SkipReason::ConditionsUnsatisfied => "when conditions were unsatisfied",
            SkipReason::NoTargetAssets => "no target assets",
            SkipReason::Unknown => "unknown",
        }
    }
}

impl Default for SkipReason {
    fn default() -> Self {
        Self::Unknown
    }
}

impl Display for SkipReason {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        write!(f, "{}", self.as_str())
    }
}

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

    #[test]
    fn as_str_conditions_unsatisfied() {
        assert_eq!(
            "when conditions were unsatisfied",
            SkipReason::ConditionsUnsatisfied.as_str()
        )
    }

    #[test]
    fn as_str_no_target_assets() {
        assert_eq!("no target assets", SkipReason::NoTargetAssets.as_str())
    }

    #[test]
    fn as_str_no_unknown() {
        assert_eq!("unknown", SkipReason::Unknown.as_str())
    }

    #[test]
    fn default() {
        assert_eq!(SkipReason::Unknown, Default::default())
    }
}