umya_spreadsheet/structs/
csv_encode_values.rs1use 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}