docx_rs/types/
style_type.rs

1use std::fmt;
2#[cfg(feature = "wasm")]
3use wasm_bindgen::prelude::*;
4
5use super::errors;
6use serde::Serialize;
7use std::str::FromStr;
8
9#[cfg_attr(feature = "wasm", wasm_bindgen)]
10#[derive(Debug, Clone, PartialEq, Serialize, Copy)]
11#[serde(rename_all = "camelCase")]
12pub enum StyleType {
13    Paragraph,
14    Character,
15    Numbering,
16    Table,
17    Unsupported,
18}
19
20impl fmt::Display for StyleType {
21    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
22        match *self {
23            StyleType::Paragraph => write!(f, "paragraph"),
24            StyleType::Character => write!(f, "character"),
25            StyleType::Numbering => write!(f, "numbering"),
26            StyleType::Table => write!(f, "table"),
27            StyleType::Unsupported => write!(f, "unsupported"),
28        }
29    }
30}
31
32impl FromStr for StyleType {
33    type Err = errors::TypeError;
34    fn from_str(s: &str) -> Result<Self, Self::Err> {
35        match s {
36            "paragraph" => Ok(StyleType::Paragraph),
37            "character" => Ok(StyleType::Character),
38            "numbering" => Ok(StyleType::Numbering),
39            "table" => Ok(StyleType::Table),
40            _ => Ok(StyleType::Unsupported),
41        }
42    }
43}