seuss 0.3.1

A batteries-included framework for implementing Redfish-compliant services.
Documentation
use axum::{
    extract::State,
    routing::{get, MethodRouter},
    Json,
};
use std::collections::HashMap;

pub struct RedfishVersions(MethodRouter);

impl RedfishVersions {
    pub fn new(versions: HashMap<String, String>) -> Self {
        let router = get(|State(state): State<HashMap<String, String>>| async move { Json(state) })
            .with_state(versions);
        Self(router)
    }
}

impl Default for RedfishVersions {
    fn default() -> Self {
        let mut version_map = HashMap::new();
        version_map.insert("v1".to_string(), "/redfish/v1/".to_string());
        RedfishVersions::new(version_map)
    }
}

impl From<RedfishVersions> for MethodRouter {
    fn from(val: RedfishVersions) -> Self {
        val.0
    }
}