spreadsheet_ods/
xlink.rs

1//! Enums for XLink.
2
3use get_size2::GetSize;
4use std::fmt::{Display, Formatter};
5
6/// See §5.6.2 of XLink.
7#[derive(Debug, Clone, Copy, GetSize)]
8pub enum XLinkActuate {
9    /// XLink
10    OnLoad,
11    /// XLink
12    OnRequest,
13}
14
15impl Display for XLinkActuate {
16    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
17        match self {
18            XLinkActuate::OnLoad => write!(f, "OnLoad"),
19            XLinkActuate::OnRequest => write!(f, "OnRequest"),
20        }
21    }
22}
23
24/// See §5.6.1 of XLink.
25#[derive(Debug, Clone, Copy, GetSize)]
26pub enum XLinkShow {
27    /// XLink
28    New,
29    /// XLink
30    Replace,
31}
32
33impl Display for XLinkShow {
34    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
35        match self {
36            XLinkShow::New => write!(f, "new"),
37            XLinkShow::Replace => write!(f, "replace"),
38        }
39    }
40}
41
42/// See §3.2 of XLink.
43#[derive(Debug, Clone, Copy, Default, GetSize)]
44pub enum XLinkType {
45    /// XLink
46    #[default]
47    Simple,
48    /// XLink
49    Extended,
50    /// XLink
51    Locator,
52    /// XLink
53    Arc,
54    /// XLink
55    Resource,
56    /// XLink
57    Title,
58    /// XLink
59    None,
60}
61
62impl Display for XLinkType {
63    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
64        match self {
65            XLinkType::Simple => write!(f, "simple"),
66            XLinkType::Extended => write!(f, "extended"),
67            XLinkType::Locator => write!(f, "locator"),
68            XLinkType::Arc => write!(f, "arc"),
69            XLinkType::Resource => write!(f, "resource"),
70            XLinkType::Title => write!(f, "title"),
71            XLinkType::None => write!(f, "none"),
72        }
73    }
74}