docx_reader/documents/elements/
abstract_numbering.rs

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