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