+zhed-packlist

fogti
Aug 31, 2021, 6:48 AM
BUI22CYQ7XPD64JNBPOQZJMO5KDXSTFWPT3CXLOGL5EHVTO63SMAC

Dependencies

Change contents

  • file addition: zhed-packlist (d--r------)
    [2.165]
  • file addition: src (d--r------)
    [0.25]
  • file addition: lib.rs (----------)
    [0.41]
    use std::collections::BTreeMap;
    mod serial;
    pub use serial::Error as ParseError;
    #[derive(Clone, Debug, PartialEq, Eq)]
    pub struct PackList {
    pub name: String,
    pub range: String,
    pub sections: BTreeMap<String, Section>,
    }
    #[derive(Clone, Debug, Default, PartialEq, Eq)]
    pub struct Section {
    pub summary: ItemData,
    pub items: Vec<(ItemData, String)>,
    }
    #[derive(Clone, Debug, PartialEq, Eq)]
    pub struct ItemData {
    pub premarker: char,
    pub multiplier: u32,
    }
    impl Default for ItemData {
    fn default() -> Self {
    Self {
    premarker: ' ',
    multiplier: 1,
    }
    }
    }
    impl PackList {
    pub fn reset_premarkers(&mut self) {
    self.sections.values_mut().for_each(|sd| sd.reset_premarkers());
    }
    }
    impl Section {
    pub fn reset_premarkers(&mut self) {
    self.summary.premarker = ' ';
    self.items.iter_mut().for_each(|item| item.0.premarker = ' ');
    }
    }
    #[cfg(test)]
    mod tests {
    use super::*;
    #[test]
    fn ex0rs() {
    let mut sections = BTreeMap::new();
    sections.insert(String::new(), Section {
    summary: ItemData::default(),
    items: vec![
    (ItemData { premarker: ' ', multiplier: 1 }, "15 Ruß".to_string()),
    (ItemData { premarker: ' ', multiplier: 132 }, "Wattestäbe".to_string()),
    (ItemData { premarker: '#', multiplier: 0 }, "Handtuch".to_string()),
    ],
    });
    sections.insert("Wachsbaum ...".to_string(), Section {
    summary: ItemData {
    premarker: '-',
    multiplier: 5000,
    },
    items: vec![
    (ItemData { premarker: ' ', multiplier: 1 }, "Ranke".to_string()),
    (ItemData { premarker: '*', multiplier: 1 }, "5 x Metrik + BNaumbnd".to_string()),
    ],
    });
    let mut res = PackList {
    name: "Packliste Ölland".to_string(),
    range: "80 Tage, 50 Nächtsle".to_string(),
    sections,
    };
    let mut sections2 = BTreeMap::new();
    sections2.insert(String::new(), Section {
    summary: ItemData::default(),
    items: vec![
    (ItemData { premarker: ' ', multiplier: 1 }, "15 Ruß".to_string()),
    (ItemData { premarker: ' ', multiplier: 132 }, "Wattestäbe".to_string()),
    (ItemData { premarker: ' ', multiplier: 0 }, "Handtuch".to_string()),
    ],
    });
    sections2.insert("Wachsbaum ...".to_string(), Section {
    summary: ItemData {
    premarker: ' ',
    multiplier: 5000,
    },
    items: vec![
    (ItemData { premarker: ' ', multiplier: 1 }, "Ranke".to_string()),
    (ItemData { premarker: ' ', multiplier: 1 }, "5 x Metrik + BNaumbnd".to_string()),
    ],
    });
    let res2 = PackList {
    name: "Packliste Ölland".to_string(),
    range: "80 Tage, 50 Nächtsle".to_string(),
    sections: sections2,
    };
    res.reset_premarkers();
    assert_eq!(res, res2);
    }
    }
  • file addition: Cargo.toml (----------)
    [0.25]
    [package]
    name = "zhed-packlist"
    version = "0.0.0"
    edition = "2018"
    [dependencies]
    thiserror = "1.0.26"
  • edit in Cargo.lock at line 94
    [2.10115]
    [2.10115]
    ]
    [[package]]
    name = "thiserror"
    version = "1.0.28"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "283d5230e63df9608ac7d9691adc1dfb6e701225436eb64d0b9a7f0a5a04f6ec"
    dependencies = [
    "thiserror-impl",
  • edit in Cargo.lock at line 106
    [2.10130]
    [2.10130]
    name = "thiserror-impl"
    version = "1.0.28"
    source = "registry+https://github.com/rust-lang/crates.io-index"
    checksum = "fa3884228611f5cd3608e2d409bf7dce832e4eb3135e3f11addbd7e41bd68e71"
    dependencies = [
    "proc-macro2",
    "quote",
    "syn",
    ]
    [[package]]
  • edit in Cargo.lock at line 140
    [2.10639]
    [2.10639]
    name = "zhed-packlist"
    version = "0.0.0"
    dependencies = [
    "thiserror",
    ]
    [[package]]