docx_reader/types/
alignment_type.rs

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