text_document_formatting/
dtos.rs1use common::entities::TextDirection;
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
7pub struct SetTextFormatDto {
8 pub position: i64,
9 pub anchor: i64,
10 pub font_family: Option<String>,
11 pub font_point_size: Option<i64>,
12 pub font_weight: Option<i64>,
13 pub font_bold: Option<bool>,
14 pub font_italic: Option<bool>,
15 pub font_underline: Option<bool>,
16 pub font_overline: Option<bool>,
17 pub font_strikeout: Option<bool>,
18 pub letter_spacing: Option<i64>,
19 pub word_spacing: Option<i64>,
20 pub underline_style: Option<UnderlineStyle>,
21 pub vertical_alignment: Option<CharVerticalAlignment>,
22}
23
24#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
25pub enum UnderlineStyle {
26 #[default]
27 NoUnderline,
28 SingleUnderline,
29 DashUnderline,
30 DotLine,
31 DashDotLine,
32 DashDotDotLine,
33 WaveUnderline,
34 SpellCheckUnderline,
35}
36
37#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
38pub enum CharVerticalAlignment {
39 #[default]
40 Normal,
41 SuperScript,
42 SubScript,
43 Middle,
44 Bottom,
45 Top,
46 Baseline,
47}
48#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
49pub struct MergeTextFormatDto {
50 pub position: i64,
51 pub anchor: i64,
52 pub font_family: Option<String>,
53 pub font_bold: Option<bool>,
54 pub font_italic: Option<bool>,
55 pub font_underline: Option<bool>,
56 pub font_strikeout: Option<bool>,
57}
58#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
59pub struct SetBlockFormatDto {
60 pub position: i64,
61 pub anchor: i64,
62 pub alignment: Option<Alignment>,
63 pub heading_level: Option<i64>,
64 pub indent: Option<i64>,
65 pub marker: Option<MarkerType>,
66 pub line_height: Option<i64>,
67 pub non_breakable_lines: Option<bool>,
68 pub direction: Option<TextDirection>,
69 pub background_color: Option<String>,
70 pub is_code_block: Option<bool>,
71 pub code_language: Option<String>,
72 pub hyphenate: Option<bool>,
73 pub language: Option<String>,
74 pub top_margin: Option<i64>,
75 pub bottom_margin: Option<i64>,
76 pub left_margin: Option<i64>,
77 pub right_margin: Option<i64>,
78 pub text_indent: Option<i64>,
83}
84
85#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
86pub enum Alignment {
87 #[default]
88 Left,
89 Right,
90 Center,
91 Justify,
92}
93
94#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
95pub enum MarkerType {
96 #[default]
97 NoMarker,
98 Unchecked,
99 Checked,
100}
101#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
102pub struct SetFrameFormatDto {
103 pub position: i64,
104 pub anchor: i64,
105 pub frame_id: i64,
106 pub height: Option<i64>,
107 pub width: Option<i64>,
108 pub top_margin: Option<i64>,
109 pub bottom_margin: Option<i64>,
110 pub left_margin: Option<i64>,
111 pub right_margin: Option<i64>,
112 pub padding: Option<i64>,
113 pub border: Option<i64>,
114 pub is_blockquote: Option<bool>,
115}
116#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
117pub struct SetTableFormatDto {
118 pub table_id: i64,
119 pub border: Option<i64>,
120 pub cell_spacing: Option<i64>,
121 pub cell_padding: Option<i64>,
122 pub width: Option<i64>,
123 pub alignment: Option<Alignment>,
124}
125#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
126pub struct SetTableCellFormatDto {
127 pub cell_id: i64,
128 pub padding: Option<i64>,
129 pub border: Option<i64>,
130 pub vertical_alignment: Option<CellVerticalAlignment>,
131 pub background_color: Option<String>,
132}
133
134pub use common::entities::ListStyle;
135
136#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
137pub struct SetListFormatDto {
138 pub list_id: i64,
139 pub style: Option<ListStyle>,
140 pub indent: Option<i64>,
141 pub prefix: Option<String>,
142 pub suffix: Option<String>,
143}
144
145#[derive(Serialize, Deserialize, Default, Clone, Debug, PartialEq, Eq)]
146pub enum CellVerticalAlignment {
147 #[default]
148 Top,
149 Middle,
150 Bottom,
151}