umya_spreadsheet/structs/
csv_encode_values.rs

1use super::EnumTrait;
2use std::str::FromStr;
3#[derive(Clone, Debug, Eq, Ord, PartialEq, PartialOrd)]
4pub enum CsvEncodeValues {
5    Utf8,
6    ShiftJis,
7    Koi8u,
8    Koi8r,
9    Iso88598i,
10    Gbk,
11    EucKr,
12    Big5,
13    Utf16Le,
14    Utf16Be,
15}
16impl Default for CsvEncodeValues {
17    #[inline]
18    fn default() -> Self {
19        Self::Utf8
20    }
21}
22impl EnumTrait for CsvEncodeValues {
23    #[inline]
24    fn get_value_string(&self) -> &str {
25        match &self {
26            Self::Utf8 => "utf_8",
27            Self::ShiftJis => "shift_jis",
28            Self::Koi8u => "koi_8_u",
29            Self::Koi8r => "koi_8_r",
30            Self::Iso88598i => "iso_8859_8_i",
31            Self::Gbk => "gbk",
32            Self::EucKr => "euc_kr",
33            Self::Big5 => "big_5",
34            Self::Utf16Le => "utf_16_le",
35            Self::Utf16Be => "utf_16_be",
36        }
37    }
38}
39impl FromStr for CsvEncodeValues {
40    type Err = ();
41
42    #[inline]
43    fn from_str(input: &str) -> Result<Self, Self::Err> {
44        match input {
45            "utf_8" => Ok(Self::Utf8),
46            "shift_jis" => Ok(Self::ShiftJis),
47            "koi_8_u" => Ok(Self::Koi8u),
48            "koi_8_r" => Ok(Self::Koi8r),
49            "iso_8859_8_i" => Ok(Self::Iso88598i),
50            "gbk" => Ok(Self::Gbk),
51            "euc_kr" => Ok(Self::EucKr),
52            "big_5" => Ok(Self::Big5),
53            "utf_16_le" => Ok(Self::Utf16Le),
54            "utf_16_be" => Ok(Self::Utf16Be),
55            _ => Err(()),
56        }
57    }
58}