jpreprocess_core/pos/
fukushi.rs1use std::{fmt::Display, str::FromStr};
2
3use serde::{Deserialize, Serialize};
4
5use super::{POSKind, POSParseError};
6
7#[derive(Clone, Copy, PartialEq, Debug, Serialize, Deserialize)]
8pub enum Fukushi {
10 None,
12 General,
14 JoshiruiSetsuzoku,
16}
17
18impl FromStr for Fukushi {
19 type Err = POSParseError;
20 fn from_str(s: &str) -> Result<Self, Self::Err> {
21 match s {
22 "*" => Ok(Self::None),
23 "一般" => Ok(Self::General),
24 "助詞類接続" => Ok(Self::JoshiruiSetsuzoku),
25 _ => Err(POSParseError::new(1, s.to_string(), POSKind::Fukushi)),
26 }
27 }
28}
29
30impl Display for Fukushi {
31 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
32 write!(
33 f,
34 "{},*,*",
35 match &self {
36 Self::None => "*",
37 Self::General => "一般",
38 Self::JoshiruiSetsuzoku => "助詞類接続",
39 },
40 )
41 }
42}