diff options
author | Harald Eilertsen <haraldei@anduin.net> | 2018-12-26 22:49:32 +0100 |
---|---|---|
committer | Harald Eilertsen <haraldei@anduin.net> | 2018-12-26 22:49:32 +0100 |
commit | bd1d3827f1a0f36d78c48e714d8a0214d53c479f (patch) | |
tree | b50c21aea0229195bde4de808b531f178ab26b37 | |
parent | e2a449dfc70d6791918506013776600a5c5f86e6 (diff) | |
download | primstav-bd1d3827f1a0f36d78c48e714d8a0214d53c479f.tar.gz primstav-bd1d3827f1a0f36d78c48e714d8a0214d53c479f.tar.bz2 primstav-bd1d3827f1a0f36d78c48e714d8a0214d53c479f.zip |
Begin moving core functionality to lib.
-rw-r--r-- | src/lib.rs | 30 | ||||
-rw-r--r-- | src/main.rs | 16 |
2 files changed, 32 insertions, 14 deletions
diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..04da2ca --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,30 @@ +// This file is part of primstav. +// Copyright (C) 2018 Harald Eilertsen <haraldei@anduin.net> +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <https://www.gnu.org/licenses/>. + +use std::collections::BTreeMap; +use serde_derive::Deserialize; + +#[derive(Deserialize)] +pub struct Mark { + pub name: String, + pub alternative_names: Vec<String>, + pub symbols: Vec<String>, + pub links: BTreeMap<String, String>, +} + +pub struct Primstav { + pub marks: BTreeMap<String, Mark>, +} diff --git a/src/main.rs b/src/main.rs index c56ffb3..fa18e1d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -15,9 +15,7 @@ // along with this program. If not, see <https://www.gnu.org/licenses/>. use chrono; -use serde_derive::Deserialize; use serde_yaml; -use std::collections::BTreeMap; use std::io::BufReader; use std::iter::Iterator; use std::fs::File; @@ -25,6 +23,8 @@ use std::string::ToString; mod locale; +use primstav::{Primstav, Mark}; + fn capitalize(s: &str) -> String { let mut chars = s.chars(); match chars.next() { @@ -42,18 +42,6 @@ fn test_capitalize() { assert_eq!("", capitalize("")); } -#[derive(Deserialize)] -struct Mark { - name: String, - alternative_names: Vec<String>, - symbols: Vec<String>, - links: BTreeMap<String, String>, -} - -struct Primstav { - marks: BTreeMap<String, Mark>, -} - fn print_entry(m: &Mark) { println!("{}", capitalize(&m.name)); |