aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Eilertsen <haraldei@anduin.net>2018-12-26 22:49:32 +0100
committerHarald Eilertsen <haraldei@anduin.net>2018-12-26 22:49:32 +0100
commitbd1d3827f1a0f36d78c48e714d8a0214d53c479f (patch)
treeb50c21aea0229195bde4de808b531f178ab26b37
parente2a449dfc70d6791918506013776600a5c5f86e6 (diff)
downloadprimstav-bd1d3827f1a0f36d78c48e714d8a0214d53c479f.tar.gz
primstav-bd1d3827f1a0f36d78c48e714d8a0214d53c479f.tar.bz2
primstav-bd1d3827f1a0f36d78c48e714d8a0214d53c479f.zip
Begin moving core functionality to lib.
-rw-r--r--src/lib.rs30
-rw-r--r--src/main.rs16
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));