From bd1d3827f1a0f36d78c48e714d8a0214d53c479f Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Wed, 26 Dec 2018 22:49:32 +0100 Subject: Begin moving core functionality to lib. --- src/lib.rs | 30 ++++++++++++++++++++++++++++++ src/main.rs | 16 ++-------------- 2 files changed, 32 insertions(+), 14 deletions(-) create mode 100644 src/lib.rs 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 +// +// 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 . + +use std::collections::BTreeMap; +use serde_derive::Deserialize; + +#[derive(Deserialize)] +pub struct Mark { + pub name: String, + pub alternative_names: Vec, + pub symbols: Vec, + pub links: BTreeMap, +} + +pub struct Primstav { + pub marks: BTreeMap, +} 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 . 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, - symbols: Vec, - links: BTreeMap, -} - -struct Primstav { - marks: BTreeMap, -} - fn print_entry(m: &Mark) { println!("{}", capitalize(&m.name)); -- cgit v1.2.3