oca_bundle_semantics/state/
encoding.rs

1use serde::{Deserialize, Serialize};
2use std::str::FromStr;
3use wasm_bindgen::prelude::*;
4
5#[wasm_bindgen]
6#[derive(Serialize, Deserialize, Debug, Clone, Copy)]
7pub enum Encoding {
8    #[serde(rename = "base64")]
9    Base64,
10    #[serde(rename = "utf-8")]
11    Utf8,
12    #[serde(rename = "iso-8859-1")]
13    Iso8859_1,
14    #[serde(rename = "utf-16")]
15    Utf16,
16    #[serde(rename = "utf-16be")]
17    Utf16Be,
18    #[serde(rename = "utf-16le")]
19    Utf16Le,
20}
21
22impl FromStr for Encoding {
23    type Err = ();
24
25    fn from_str(s: &str) -> Result<Self, Self::Err> {
26        match s {
27            "base64" => Ok(Encoding::Base64),
28            "utf-8" => Ok(Encoding::Utf8),
29            "iso-8859-1" => Ok(Encoding::Iso8859_1),
30            "utf-16" => Ok(Encoding::Utf16),
31            "utf-16be" => Ok(Encoding::Utf16Be),
32            "utf-16le" => Ok(Encoding::Utf16Le),
33            _ => Err(()),
34        }
35    }
36}