Skip to main content

easyofd_core/model/
bookmark.rs

1//! OFD 书签。
2//!
3//! 对应 Java: org.ofdrw.core.basicStructure.outline.CT_OutlineNode
4
5/// 单个书签项(ofd:Bookmark / ofd:OutlineElem)。
6///
7/// 对应 Java: ofdrw CT_OutlineNode。
8#[derive(Debug, Clone, PartialEq)]
9pub struct Bookmark {
10    /// 书签名称。
11    pub name: String,
12    /// 跳转目标页面(ofd:GoTo 属性或子元素),可选。
13    pub goto_target: Option<String>,
14}
15
16impl Bookmark {
17    /// 创建新书签。
18    pub fn new(name: impl Into<String>) -> Self {
19        Self {
20            name: name.into(),
21            goto_target: None,
22        }
23    }
24
25    /// 设置跳转目标。
26    #[must_use]
27    pub fn with_goto(mut self, target: impl Into<String>) -> Self {
28        self.goto_target = Some(target.into());
29        self
30    }
31}