From f6a6b4a2ff569891e3892a7e4126257810468c19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Massot?= Date: Sun, 25 Jun 2023 14:01:10 +0200 Subject: [PATCH] Clean. --- src/tokenizer/tokenizer.rs | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/src/tokenizer/tokenizer.rs b/src/tokenizer/tokenizer.rs index a185348b3..4b34821ee 100644 --- a/src/tokenizer/tokenizer.rs +++ b/src/tokenizer/tokenizer.rs @@ -6,6 +6,7 @@ use tokenizer_api::{FilteredTokenizer, TokenFilter, TokenStream, Tokenizer}; use crate::tokenizer::empty_tokenizer::EmptyTokenizer; /// `TextAnalyzer` tokenizes an input text into tokens and modifies the resulting `TokenStream`. +#[derive(Clone)] pub struct TextAnalyzer { tokenizer: Box, token_filters: Vec, @@ -28,18 +29,12 @@ dyn_clone::clone_trait_object!(BoxableTokenizer); /// A boxable `TokenFilter`, with its `Tokenizer` type erased. trait BoxableTokenFilter: 'static + Send + Sync + DynClone { /// Transforms a boxed token stream into a new one. - fn box_transform<'a>( - &self, - token_stream: Box, - ) -> Box; + fn box_filter<'a>(&self, token_stream: Box) -> Box; } impl BoxableTokenFilter for T { - fn box_transform<'a>( - &self, - token_stream: Box, - ) -> Box { - Box::new(self.clone().filter(token_stream)) + fn box_filter<'a>(&self, token_stream: Box) -> Box { + Box::new(self.filter(token_stream)) } } @@ -57,19 +52,6 @@ impl From for BoxTokenFilter { } } -impl Clone for TextAnalyzer { - fn clone(&self) -> Self { - TextAnalyzer { - tokenizer: self.tokenizer.clone(), - token_filters: self - .token_filters - .iter() - .map(|token_filter| token_filter.clone()) - .collect(), - } - } -} - impl TextAnalyzer { /// Builds a new `TextAnalyzer` given a tokenizer and a vector of `BoxTokenFilter`. /// @@ -106,7 +88,7 @@ impl TextAnalyzer { pub fn token_stream<'a>(&'a mut self, text: &'a str) -> Box { let mut token_stream = self.tokenizer.box_token_stream(text); for token_filter in &self.token_filters { - token_stream = token_filter.0.box_transform(token_stream); + token_stream = token_filter.0.box_filter(token_stream); } token_stream }