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