docx_reader/types/
alignment_type.rs1use std::fmt;
2use std::str::FromStr;
3
4use super::errors;
5
6#[derive(Copy, Clone, Debug)]
7pub enum AlignmentType {
8 Both,
9 Center,
10 Distribute,
11 Start,
12 End,
13 Left,
14 Right,
15 Justified,
16 Unsupported,
17}
18
19impl fmt::Display for AlignmentType {
20 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
21 match *self {
22 AlignmentType::Center => write!(f, "center"),
23 AlignmentType::Left => write!(f, "left"),
24 AlignmentType::Distribute => write!(f, "distribute"),
25 AlignmentType::Right => write!(f, "right"),
26 AlignmentType::Start => write!(f, "start"),
27 AlignmentType::End => write!(f, "end"),
28 AlignmentType::Both => write!(f, "both"),
29 AlignmentType::Justified => write!(f, "justified"),
30 _ => write!(f, "unsupported"),
31 }
32 }
33}
34
35impl FromStr for AlignmentType {
36 type Err = errors::TypeError;
37 fn from_str(s: &str) -> Result<Self, Self::Err> {
38 match s {
39 "left" => Ok(AlignmentType::Left),
40 "right" => Ok(AlignmentType::Right),
41 "distribute" => Ok(AlignmentType::Distribute),
42 "center" => Ok(AlignmentType::Center),
43 "both" => Ok(AlignmentType::Both),
44 "start" => Ok(AlignmentType::Start),
45 "end" => Ok(AlignmentType::End),
46 "justified" => Ok(AlignmentType::Justified),
47 _ => Ok(AlignmentType::Unsupported),
48 }
49 }
50}