Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion crates/typst-library/src/foundations/array.rs
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ impl Array {
}

/// Iterate over references to the contained values.
pub fn iter(&self) -> std::slice::Iter<Value> {
pub fn iter(&self) -> std::slice::Iter<'_, Value> {
self.0.iter()
}

Expand Down
2 changes: 1 addition & 1 deletion crates/typst-library/src/foundations/dict.rs
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ impl Dict {
}

/// Iterate over pairs of references to the contained keys and values.
pub fn iter(&self) -> indexmap::map::Iter<Str, Value> {
pub fn iter(&self) -> indexmap::map::Iter<'_, Str, Value> {
self.0.iter()
}

Expand Down
16 changes: 15 additions & 1 deletion crates/typst-library/src/layout/container.rs
Original file line number Diff line number Diff line change
Expand Up @@ -497,7 +497,8 @@ mod callbacks {

macro_rules! callback {
($name:ident = ($($param:ident: $param_ty:ty),* $(,)?) -> $ret:ty) => {
#[derive(Debug, Clone, PartialEq, Hash)]
#[derive(Debug, Clone, Hash)]
#[allow(clippy::derived_hash_with_manual_eq)]
pub struct $name {
captured: Content,
f: fn(&Content, $($param_ty),*) -> $ret,
Expand Down Expand Up @@ -535,6 +536,19 @@ mod callbacks {
(self.f)(&self.captured, $($param),*)
}
}

impl PartialEq for $name {
fn eq(&self, other: &Self) -> bool {
// Comparing function pointers is problematic. Since for
// each type of content, there is typically just one
// callback, we skip it. It barely matters anyway since
// getting into a comparison codepath for inline & block
// elements containing callback bodies is close to
// impossible (as these are generally generated in show
// rules).
self.captured.eq(&other.captured)
}
}
};
}

Expand Down
4 changes: 2 additions & 2 deletions crates/typst-library/src/layout/fragment.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,12 @@ impl Fragment {
}

/// Iterate over the contained frames.
pub fn iter(&self) -> std::slice::Iter<Frame> {
pub fn iter(&self) -> std::slice::Iter<'_, Frame> {
self.0.iter()
}

/// Iterate over the contained frames.
pub fn iter_mut(&mut self) -> std::slice::IterMut<Frame> {
pub fn iter_mut(&mut self) -> std::slice::IterMut<'_, Frame> {
self.0.iter_mut()
}
}
Expand Down
2 changes: 1 addition & 1 deletion crates/typst-library/src/text/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -936,7 +936,7 @@ cast! {
}

/// Resolve a prioritized iterator over the font families.
pub fn families(styles: StyleChain) -> impl Iterator<Item = &FontFamily> + Clone {
pub fn families(styles: StyleChain<'_>) -> impl Iterator<Item = &'_ FontFamily> + Clone {
let fallbacks = singleton!(Vec<FontFamily>, {
[
"libertinus serif",
Expand Down