use serde::Deserialize;
#[derive(Debug, Clone, Deserialize, PartialEq, Eq)]
pub struct BackendsManifest {
#[serde(rename = "crate")]
pub crate_name: String,
pub version: String,
pub backends: Vec<String>,
}
impl BackendsManifest {
pub fn current() -> Self {
let raw = include_str!(env!("RLX_BACKENDS_MANIFEST_PATH"));
serde_json::from_str(raw).expect("parse backends_manifest.json")
}
pub fn json() -> &'static str {
include_str!(env!("RLX_BACKENDS_MANIFEST_PATH"))
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn manifest_parses_and_includes_cpu() {
let m = BackendsManifest::current();
assert_eq!(m.crate_name, "rlx-runtime");
assert!(m.backends.iter().any(|b| b == "cpu"));
}
}