snark-tool 0.4.0

snark-tool library contains structures and algorithm for (mainly) cubic graph analysis
Documentation
use serde::{Deserialize, Serialize};
use std::collections::HashMap;

#[derive(Debug, PartialEq, Serialize, Deserialize)]
pub struct Configuration {
    pub version: f64,

    #[serde(skip_serializing_if = "Option::is_none")]
    pub options: Option<Vec<String>>,

    pub procedures: Vec<ProcedureConfig>,
}

#[derive(Debug, PartialEq, Serialize, Deserialize)]
pub struct ProcedureConfig {
    #[serde(alias = "proc-type")]
    pub proc_type: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub config: Option<HashMap<String, serde_json::Value>>,
}

impl Configuration {
    pub fn from_yaml_string(yaml_string: &str) -> Result<Configuration, serde_yaml::Error> {
        serde_yaml::from_str(&yaml_string)
    }
}