use strum_macros::{Display, EnumString};
pub const STREAM_BASE_URL: &str = "https://builds.coreos.fedoraproject.org/streams/";
#[derive(Debug, PartialEq, Eq, Clone, Copy, EnumString, Display)]
#[strum(serialize_all = "kebab-case")]
pub enum StreamID {
Stable,
Testing,
Next,
}
impl StreamID {
pub fn url(&self) -> String {
format!("{}{}.json", STREAM_BASE_URL, self)
}
}
#[cfg(test)]
mod tests {
use std::str::FromStr;
use super::*;
#[test]
fn test_rhcos_streamid() {
assert_eq!(StreamID::Stable.to_string(), "stable");
assert_eq!(StreamID::from_str("testing").unwrap(), StreamID::Testing);
assert!(StreamID::from_str("foo").is_err());
}
}