From a03bb8e90620d18724cea2c88a21d23afcf60a21 Mon Sep 17 00:00:00 2001 From: Mikhail Atuchin Date: Thu, 14 Aug 2025 20:48:00 +0700 Subject: [PATCH] Fix mismatched_lifetime_syntaxes --- src/blocker.rs | 4 ++-- src/data_format/storage.rs | 49 -------------------------------------- src/filters/fb_network.rs | 13 +++++++--- src/filters/network.rs | 2 +- src/network_filter_list.rs | 2 +- 5 files changed, 14 insertions(+), 56 deletions(-) diff --git a/src/blocker.rs b/src/blocker.rs index 24abf5fd..c84efd8a 100644 --- a/src/blocker.rs +++ b/src/blocker.rs @@ -96,7 +96,7 @@ impl Blocker { } #[cfg(feature = "unsync-regex-caching")] - fn borrow_regex_manager(&self) -> std::cell::RefMut { + fn borrow_regex_manager(&self) -> std::cell::RefMut<'_, RegexManager> { #[allow(unused_mut)] let mut manager = self.regex_manager.borrow_mut(); @@ -107,7 +107,7 @@ impl Blocker { } #[cfg(not(feature = "unsync-regex-caching"))] - fn borrow_regex_manager(&self) -> std::sync::MutexGuard { + fn borrow_regex_manager(&self) -> std::sync::MutexGuard<'_, RegexManager> { let mut manager = self.regex_manager.lock().unwrap(); manager.update_time(); manager diff --git a/src/data_format/storage.rs b/src/data_format/storage.rs index ce4132d4..d0be2a61 100644 --- a/src/data_format/storage.rs +++ b/src/data_format/storage.rs @@ -11,7 +11,6 @@ use serde::{Deserialize, Serialize}; use crate::blocker::Blocker; use crate::cosmetic_filter_cache::{CosmeticFilterCache, HostnameRuleDb, ProceduralOrActionFilter}; -use crate::filters::network::{NetworkFilter, NetworkFilterMaskHelper}; use crate::network_filter_list::NetworkFilterList; use crate::utils::Hash; @@ -182,54 +181,6 @@ pub(crate) struct LegacyScriptletResourceStorage { resources: HashMap, } -/// `_bug` is no longer used, and is removed from future format versions. -#[derive(Debug, Clone, Serialize)] -struct NetworkFilterSerializeFmt<'a> { - mask: &'a crate::filters::network::NetworkFilterMask, - filter: &'a crate::filters::network::FilterPart, - opt_domains: &'a Option>, - opt_not_domains: &'a Option>, - redirect: &'a Option, - hostname: &'a Option, - csp: &'a Option, - _bug: Option, - tag: &'a Option, - raw_line: Option, - id: &'a crate::utils::Hash, -} - -/// Generic over `Borrow` because `tagged_filters_all` requires `&'a NetworkFilter` -/// while `NetworkFilterList` requires `&'a Arc`. -impl<'a, T> From<&'a T> for NetworkFilterSerializeFmt<'a> -where - T: std::borrow::Borrow, -{ - fn from(v: &'a T) -> NetworkFilterSerializeFmt<'a> { - let v = v.borrow(); - NetworkFilterSerializeFmt { - mask: &v.mask, - filter: &v.filter, - opt_domains: &v.opt_domains, - opt_not_domains: &v.opt_not_domains, - redirect: if v.is_redirect() { - &v.modifier_option - } else { - &None - }, - hostname: &v.hostname, - csp: if v.is_csp() { - &v.modifier_option - } else { - &None - }, - _bug: None, - tag: &v.tag, - raw_line: v.raw_line.as_ref().map(|raw| *raw.clone()), - id: &v.id, - } - } -} - /// Forces a `NetworkFilterList` to be serialized by converting to an /// intermediate representation that is constructed with `NetworkFilterFmt` instead. fn serialize_network_filter_list(list: &NetworkFilterList, s: S) -> Result diff --git a/src/filters/fb_network.rs b/src/filters/fb_network.rs index 9f5bcb45..2b467e1e 100644 --- a/src/filters/fb_network.rs +++ b/src/filters/fb_network.rs @@ -15,7 +15,14 @@ use crate::regex_manager::RegexManager; use crate::request::Request; use crate::utils::{Hash, ShortHash}; -#[allow(dead_code, clippy::all, unused_imports, unsafe_code)] +#[allow(unknown_lints)] +#[allow( + dead_code, + clippy::all, + unused_imports, + unsafe_code, + mismatched_lifetime_syntaxes +)] #[path = "../flatbuffers/fb_network_filter_generated.rs"] pub mod flat; use flat::fb; @@ -173,7 +180,7 @@ impl<'a> FlatPatterns<'a> { } #[inline(always)] - pub fn iter(&self) -> FlatPatternsIterator { + pub fn iter(&self) -> FlatPatternsIterator<'_> { FlatPatternsIterator { patterns: self, len: self.patterns.map_or(0, |d| d.len()), @@ -272,7 +279,7 @@ impl<'a> FlatNetworkFilter<'a> { } #[inline(always)] - pub fn patterns(&self) -> FlatPatterns { + pub fn patterns(&self) -> FlatPatterns<'_> { FlatPatterns::new(self.fb_filter.patterns()) } diff --git a/src/filters/network.rs b/src/filters/network.rs index 4698e689..921b8c96 100644 --- a/src/filters/network.rs +++ b/src/filters/network.rs @@ -363,7 +363,7 @@ impl FilterPart { } } - pub fn iter(&self) -> FilterPartIterator { + pub fn iter(&self) -> FilterPartIterator<'_> { FilterPartIterator { filter_part: self, index: 0, diff --git a/src/network_filter_list.rs b/src/network_filter_list.rs index 0bde86e2..058ca346 100644 --- a/src/network_filter_list.rs +++ b/src/network_filter_list.rs @@ -106,7 +106,7 @@ impl NetworkFilterList { }) } - pub fn get_filter_map(&self) -> FlatFilterMap { + pub fn get_filter_map(&self) -> FlatFilterMap<'_, ShortHash, fb::NetworkFilter<'_>> { let filters_list = self.memory.filter_list(); FlatFilterMap::new( fb_vector_to_slice(filters_list.filter_map_index()),