diff options
| author | Laurenz <laurmaedje@gmail.com> | 2023-03-15 10:09:17 +0100 |
|---|---|---|
| committer | Laurenz <laurmaedje@gmail.com> | 2023-03-15 10:09:17 +0100 |
| commit | 85678118086b29b3820813411cf382fa283b39f0 (patch) | |
| tree | 93c27f351515f462c2ebbe294103e2a9391a132e /library/src | |
| parent | 89f44f220de2972452dd816fe59836ba76953d59 (diff) | |
Simplify stable id handling
Diffstat (limited to 'library/src')
| -rw-r--r-- | library/src/meta/bibliography.rs | 8 | ||||
| -rw-r--r-- | library/src/meta/figure.rs | 6 | ||||
| -rw-r--r-- | library/src/meta/heading.rs | 7 | ||||
| -rw-r--r-- | library/src/meta/outline.rs | 2 | ||||
| -rw-r--r-- | library/src/meta/reference.rs | 7 |
5 files changed, 14 insertions, 16 deletions
diff --git a/library/src/meta/bibliography.rs b/library/src/meta/bibliography.rs index a01f9eee..65bdafb6 100644 --- a/library/src/meta/bibliography.rs +++ b/library/src/meta/bibliography.rs @@ -49,7 +49,7 @@ impl BibliographyNode { /// Find the document's bibliography. pub fn find(introspector: Tracked<Introspector>) -> StrResult<Self> { let mut iter = introspector.locate(Selector::node::<Self>()).into_iter(); - let Some((_, node)) = iter.next() else { + let Some(node) = iter.next() else { return Err("the document does not contain a bibliography".into()); }; @@ -65,7 +65,7 @@ impl BibliographyNode { vt.introspector .locate(Selector::node::<Self>()) .into_iter() - .flat_map(|(_, node)| load(vt.world(), &node.to::<Self>().unwrap().path())) + .flat_map(|node| load(vt.world(), &node.to::<Self>().unwrap().path())) .flatten() .any(|entry| entry.key() == key) } @@ -280,9 +280,9 @@ impl Works { let style = bibliography.style(StyleChain::default()); let citations = vt .locate_node::<CiteNode>() - .map(|(id, node)| { + .map(|node| { ( - id, + node.0.stable_id().unwrap(), node.key(), node.supplement(StyleChain::default()), node.style(StyleChain::default()) diff --git a/library/src/meta/figure.rs b/library/src/meta/figure.rs index 4f6ccc00..562e43bb 100644 --- a/library/src/meta/figure.rs +++ b/library/src/meta/figure.rs @@ -58,7 +58,7 @@ impl FigureNode { impl Synthesize for FigureNode { fn synthesize(&mut self, vt: &Vt, styles: StyleChain) { - let my_id = self.0.stable_id().unwrap(); + let my_id = self.0.stable_id(); let element = self.element(); let mut number = None; @@ -67,8 +67,8 @@ impl Synthesize for FigureNode { number = NonZeroUsize::new( 1 + vt .locate_node::<Self>() - .take_while(|&(id, _)| id != my_id) - .filter(|(_, figure)| figure.element() == element) + .take_while(|figure| figure.0.stable_id() != my_id) + .filter(|figure| figure.element() == element) .count(), ); } diff --git a/library/src/meta/heading.rs b/library/src/meta/heading.rs index 48f6e229..44a940f8 100644 --- a/library/src/meta/heading.rs +++ b/library/src/meta/heading.rs @@ -84,14 +84,15 @@ pub struct HeadingNode { impl Synthesize for HeadingNode { fn synthesize(&mut self, vt: &Vt, styles: StyleChain) { - let my_id = self.0.stable_id().unwrap(); + let my_id = self.0.stable_id(); let numbering = self.numbering(styles); let mut counter = HeadingCounter::new(); if numbering.is_some() { // Advance past existing headings. - for (_, heading) in - vt.locate_node::<Self>().take_while(|&(id, _)| id != my_id) + for heading in vt + .locate_node::<Self>() + .take_while(|figure| figure.0.stable_id() != my_id) { if heading.numbering(StyleChain::default()).is_some() { counter.advance(heading); diff --git a/library/src/meta/outline.rs b/library/src/meta/outline.rs index 7ce0ce1d..216f7a90 100644 --- a/library/src/meta/outline.rs +++ b/library/src/meta/outline.rs @@ -77,8 +77,8 @@ impl Synthesize for OutlineNode { fn synthesize(&mut self, vt: &Vt, _: StyleChain) { let headings = vt .locate_node::<HeadingNode>() - .map(|(_, node)| node.clone()) .filter(|node| node.outlined(StyleChain::default())) + .cloned() .collect(); self.push_headings(headings); diff --git a/library/src/meta/reference.rs b/library/src/meta/reference.rs index b4cfa049..e84da56b 100644 --- a/library/src/meta/reference.rs +++ b/library/src/meta/reference.rs @@ -68,10 +68,7 @@ impl Show for RefNode { let target = self.target(); let supplement = self.supplement(styles); - let matches: Vec<_> = vt - .locate(Selector::Label(self.target())) - .map(|(_, node)| node.clone()) - .collect(); + let matches: Vec<_> = vt.locate(Selector::Label(self.target())).collect(); if !vt.locatable() || BibliographyNode::has(vt, &target.0) { if !matches.is_empty() { @@ -87,7 +84,7 @@ impl Show for RefNode { .spanned(self.span())); } - let [target] = matches.as_slice() else { + let &[target] = matches.as_slice() else { if vt.locatable() { bail!(self.span(), if matches.is_empty() { "label does not exist in the document" |
