docx_rs/documents/elements/
header_reference.rs1use crate::documents::BuildXML;
2use crate::xml_builder::*;
3use std::io::Write;
4
5use serde::Serialize;
6
7#[derive(Debug, Clone, PartialEq, Serialize)]
8#[serde(rename_all = "camelCase")]
9pub struct HeaderReference {
10 pub header_type: String,
11 pub id: String,
12}
13
14impl Default for HeaderReference {
15 fn default() -> HeaderReference {
16 HeaderReference {
17 header_type: "default".to_owned(),
18 id: "rId4".to_owned(),
19 }
20 }
21}
22
23impl HeaderReference {
24 pub fn new(t: impl Into<String>, id: impl Into<String>) -> HeaderReference {
25 HeaderReference {
26 header_type: t.into(),
27 id: id.into(),
28 }
29 }
30}
31
32impl BuildXML for HeaderReference {
33 fn build_to<W: Write>(
34 &self,
35 stream: xml::writer::EventWriter<W>,
36 ) -> xml::writer::Result<xml::writer::EventWriter<W>> {
37 XMLBuilder::from(stream)
38 .header_reference(&self.header_type, &self.id)?
39 .into_inner()
40 }
41}