pub fn new() -> Database
Expand description
Initialize GalM Database instance.
let galm: galm::Database = galm::new();
Examples found in repository?
examples/galm.rs (line 77)
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
fn main() {
// 翻訳対象を読み込み
let args: Vec<String> = std::env::args().collect();
// --version もしくは --help が指定されていた場合は、他のオプションに関係なく出力
// また、両方指定されている場合は、先に指定されていた方を優先して出力
for arg in args.iter() {
match &*arg.to_string() {
// print version
"-v" | "--version" => {
println!("galm version {}", VERSIONSTR);
return;
},
// print help
"-h" | "--help" => {
println!("{}", HELPSTR);
return;
},
_ => {}
}
}
match args.len() {
1 => {
// 引数が指定されていない場合は --help を出力
println!("{}", HELPSTR);
return;
},
2 => {
use std::io::{self, Read};
let stdin = io::stdin();
let mut handle = stdin.lock();
let mut buffer = String::new();
let _ = handle.read_to_string(&mut buffer);
// initialize galm
let galm = galm::new();
// sort
let sort_key = &*args[1];
let mut vec = buffer.lines().collect::<Vec<&str>>();
vec.sort_by_cached_key( |candidate| galm.get_word_distance(sort_key, candidate) );
// print
print_vec(&vec);
return;
},
_ => {}
}
// 各処理
match &*args[2] {
"-f" | "--file" => {
if args.len() > 3 {
use std::fs::File;
use std::io::prelude::*;
let mut file = File::open(&*args[3]).unwrap();
let mut buffer = String::new();
let _ = file.read_to_string(&mut buffer);
// initialize galm
let galm = galm::new();
// sort
let sort_key = &*args[1];
let mut vec = buffer.lines().collect::<Vec<&str>>();
vec.sort_by_cached_key( |candidate| galm.get_word_distance(sort_key, candidate) );
// print
print_vec(&vec);
} else {
println!(r"Error:
filepath is not specified.");
}
},
arg => {
println!(r"Error:
not exists option: `{}`
most similar param name: `{}`
try 'galm --help' for more information",
arg,
get_similar_param(arg));
}
}
}