From 964e18be0fca43bc498afd74d90ea6481471a816 Mon Sep 17 00:00:00 2001 From: SandaruKasa Date: Tue, 14 Jan 2025 17:56:20 +0300 Subject: [PATCH] Relax lifetime constraints in language::embedding --- src/language/embedding.rs | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/src/language/embedding.rs b/src/language/embedding.rs index d1c555c44..916b11939 100644 --- a/src/language/embedding.rs +++ b/src/language/embedding.rs @@ -80,33 +80,37 @@ pub(crate) struct SimpleCapture<'a> { } impl<'a> HtmlLike<'a> { - pub fn start_script_in_range( - &'a self, + pub fn start_script_in_range<'this>( + &'this self, start: usize, end: usize, - ) -> Option>> { + ) -> Option>> { filter_range(self.start_script.as_ref()?, start, end) } - pub fn start_style_in_range( - &'a self, + pub fn start_style_in_range<'this>( + &'this self, start: usize, end: usize, - ) -> Option>> { + ) -> Option>> { filter_range(self.start_style.as_ref()?, start, end) } - pub fn start_template_in_range( - &'a self, + pub fn start_template_in_range<'this>( + &'this self, start: usize, end: usize, - ) -> Option>> { + ) -> Option>> { filter_range(self.start_template.as_ref()?, start, end) } } impl<'a> SimpleCapture<'a> { - pub fn starts_in_range(&'a self, start: usize, end: usize) -> Option<&Capture<'a>> { + pub fn starts_in_range<'this>( + &'this self, + start: usize, + end: usize, + ) -> Option<&'this Capture<'a>> { filter_range(self.starts.as_ref()?, start, end).and_then(|mut it| it.next()) } @@ -128,11 +132,11 @@ impl<'a> SimpleCapture<'a> { } } -fn filter_range<'a>( - dataset: &'a [Capture<'a>], +fn filter_range<'dataset, 'cap>( + dataset: &'dataset [Capture<'cap>], start: usize, end: usize, -) -> Option>> { +) -> Option>> { let pos = dataset .binary_search_by_key(&start, |cap| cap.start()) .ok()?;