Skip to main content

docx_reader/types/
style_type.rs

1use 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}