impl FromStr for KeywordType
This commit is contained in:
parent
7d17e904fc
commit
9eca2a68df
13
src/main.rs
13
src/main.rs
@ -8,6 +8,7 @@ use encoding::all::KOI8_R;
|
|||||||
use encoding::DecoderTrap;
|
use encoding::DecoderTrap;
|
||||||
use rayon::prelude::*;
|
use rayon::prelude::*;
|
||||||
use std::path::PathBuf;
|
use std::path::PathBuf;
|
||||||
|
use std::str::FromStr;
|
||||||
use std::{fs, io};
|
use std::{fs, io};
|
||||||
use textstream::TextReader;
|
use textstream::TextReader;
|
||||||
|
|
||||||
@ -90,10 +91,12 @@ impl Context {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl KeywordType {
|
impl FromStr for KeywordType {
|
||||||
fn from(pattern: &str) -> KeywordType {
|
type Err = ();
|
||||||
|
|
||||||
|
fn from_str(pattern: &str) -> Result<Self, Self::Err> {
|
||||||
use KeywordType::*;
|
use KeywordType::*;
|
||||||
match pattern {
|
Ok(match pattern {
|
||||||
"Мета:" => Ignore,
|
"Мета:" => Ignore,
|
||||||
"Чемпионат:" | "Пакет:" => Global,
|
"Чемпионат:" | "Пакет:" => Global,
|
||||||
"Тур:" => QuestionPre,
|
"Тур:" => QuestionPre,
|
||||||
@ -102,7 +105,7 @@ impl KeywordType {
|
|||||||
_ => CurrentScope,
|
_ => CurrentScope,
|
||||||
// "URL:" | "Ссылка:" | "Дата:" | "Обработан:" | "Автор:" | "Редактор:" | "Копирайт:" | "Инфо:" |
|
// "URL:" | "Ссылка:" | "Дата:" | "Обработан:" | "Автор:" | "Редактор:" | "Копирайт:" | "Инфо:" |
|
||||||
// "Тема:" | "Вид:" | "Тип:" | "Источник:" | "Рейтинг:" | "Комментарий:" | "Комментарии:"
|
// "Тема:" | "Вид:" | "Тип:" | "Источник:" | "Рейтинг:" | "Комментарий:" | "Комментарии:"
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,7 +155,7 @@ fn parse_file(file: impl io::Read) -> Result<json::JsonValue, Box<dyn std::error
|
|||||||
|
|
||||||
ctx.last_keyword_type = ctx.cur_keyword_type;
|
ctx.last_keyword_type = ctx.cur_keyword_type;
|
||||||
ctx.last_tag = ctx.cur_tag.clone();
|
ctx.last_tag = ctx.cur_tag.clone();
|
||||||
ctx.cur_keyword_type = Some(KeywordType::from(pattern));
|
ctx.cur_keyword_type = Some(pattern.parse().unwrap());
|
||||||
ctx.cur_tag = pattern.replace(' ', "").replace(':', "");
|
ctx.cur_tag = pattern.replace(' ', "").replace(':', "");
|
||||||
|
|
||||||
// remember question id
|
// remember question id
|
||||||
|
Loading…
Reference in New Issue
Block a user