20 lines
573 B
Rust
20 lines
573 B
Rust
use crate::runner::DeviceSequence;
|
|
use serde_derive::{Deserialize, Serialize};
|
|
use std::collections::HashSet;
|
|
use std::fs;
|
|
|
|
pub(crate) type Config<const N: usize> = Vec<Device<N>>;
|
|
|
|
#[derive(Deserialize, Serialize)]
|
|
pub struct Device<const N: usize> {
|
|
pub mac_addresses: Option<HashSet<String>>,
|
|
name: Option<String>,
|
|
pub sequence: DeviceSequence<N>,
|
|
}
|
|
|
|
pub fn load_from_file<const N: usize>(file: &std::path::Path) -> Config<N> {
|
|
let file = fs::read_to_string(file).unwrap();
|
|
let config: Config<N> = serde_yaml::from_str(&*file).unwrap();
|
|
config
|
|
}
|