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}