docx_reader/documents/elements/
abstract_numbering.rs1use crate::documents::Level;
2
3use serde::Serialize;
4
5#[derive(Debug, Clone, PartialEq, Serialize)]
6#[serde(rename_all = "camelCase")]
7pub struct AbstractNumbering {
8 pub id: usize,
9 pub style_link: Option<String>,
10 pub num_style_link: Option<String>,
11 pub levels: Vec<Level>,
12}
13
14impl AbstractNumbering {
15 pub fn new(id: usize) -> Self {
16 Self {
17 id,
18 style_link: None,
19 num_style_link: None,
20 levels: vec![],
21 }
22 }
23
24 pub fn add_level(mut self, level: Level) -> Self {
25 self.levels.push(level);
26 self
27 }
28
29 pub fn num_style_link(mut self, link: impl Into<String>) -> Self {
30 self.num_style_link = Some(link.into());
31 self
32 }
33
34 pub fn style_link(mut self, link: impl Into<String>) -> Self {
35 self.style_link = Some(link.into());
36 self
37 }
38}