docx_rs/types/
alignment_type.rs

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