From 4f32126e35b0790b9d7abfd7c2fe4464063d44b2 Mon Sep 17 00:00:00 2001 From: Paul Masurel Date: Thu, 18 Mar 2021 21:58:35 +0900 Subject: [PATCH] Allow for non static predicate in the FilterCollector --- src/collector/filter_collector_wrapper.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/collector/filter_collector_wrapper.rs b/src/collector/filter_collector_wrapper.rs index 1fe69dc66..ad19f74d8 100644 --- a/src/collector/filter_collector_wrapper.rs +++ b/src/collector/filter_collector_wrapper.rs @@ -56,11 +56,11 @@ use crate::{Score, SegmentReader, TantivyError}; /// ``` pub struct FilterCollector where - TPredicate: 'static, + TPredicate: 'static + Clone, { field: Field, collector: TCollector, - predicate: &'static TPredicate, + predicate: TPredicate, t_predicate_value: PhantomData, } @@ -68,12 +68,12 @@ impl FilterCollector where TCollector: Collector + Send + Sync, - TPredicate: Fn(TPredicateValue) -> bool + Send + Sync, + TPredicate: Fn(TPredicateValue) -> bool + Send + Sync + Clone, { /// Create a new FilterCollector. pub fn new( field: Field, - predicate: &'static TPredicate, + predicate: TPredicate, collector: TCollector, ) -> FilterCollector { FilterCollector { @@ -89,7 +89,7 @@ impl Collector for FilterCollector where TCollector: Collector + Send + Sync, - TPredicate: 'static + Fn(TPredicateValue) -> bool + Send + Sync, + TPredicate: 'static + Fn(TPredicateValue) -> bool + Send + Sync + Clone, TPredicateValue: FastValue, { // That's the type of our result. @@ -133,7 +133,7 @@ where Ok(FilterSegmentCollector { fast_field_reader, segment_collector, - predicate: self.predicate, + predicate: self.predicate.clone(), t_predicate_value: PhantomData, }) } @@ -157,7 +157,7 @@ where { fast_field_reader: FastFieldReader, segment_collector: TSegmentCollector, - predicate: &'static TPredicate, + predicate: TPredicate, t_predicate_value: PhantomData, }