From 98a3b019923379fa44b23b7ecce739ff6441dbcd Mon Sep 17 00:00:00 2001 From: Paul Masurel Date: Fri, 30 Jun 2023 16:24:49 +0900 Subject: [PATCH] Removing the BoxedTokenizer --- src/tokenizer/tokenizer.rs | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/tokenizer/tokenizer.rs b/src/tokenizer/tokenizer.rs index 0642ef662..2bbb37256 100644 --- a/src/tokenizer/tokenizer.rs +++ b/src/tokenizer/tokenizer.rs @@ -9,20 +9,11 @@ pub struct TextAnalyzer { tokenizer: Box, } - -mod public_but_unreachable { - /// Wrapper to avoid recursive acalls of `box_token_stream`. - #[derive(Clone)] - pub struct BoxedTokenizer(pub(super) Box); -} - -use public_but_unreachable::BoxedTokenizer; - -impl Tokenizer for BoxedTokenizer { +impl Tokenizer for Box { type TokenStream<'a> = BoxTokenStream<'a>; fn token_stream<'a>(&'a mut self, text: &'a str) -> Self::TokenStream<'a> { - self.0.box_token_stream(text) + (**self).box_token_stream(text) } } @@ -33,7 +24,7 @@ impl Clone for Box { } /// A boxable `Tokenizer`, with its `TokenStream` type erased. -trait BoxableTokenizer: 'static + Send + Sync { +pub trait BoxableTokenizer: 'static + Send + Sync { /// Creates a boxed token stream for a given `str`. fn box_token_stream<'a>(&'a mut self, text: &'a str) -> BoxTokenStream<'a>; /// Clone this tokenizer. @@ -82,7 +73,7 @@ impl TextAnalyzer { } /// Builder helper for [`TextAnalyzer`] -pub struct TextAnalyzerBuilder { +pub struct TextAnalyzerBuilder> { tokenizer: T, } @@ -108,7 +99,7 @@ impl TextAnalyzerBuilder { // Boxes the internal tokenizer. This is useful to write generic code. pub fn dynamic(self) -> TextAnalyzerBuilder { - let boxed_tokenizer = BoxedTokenizer(Box::new(self.tokenizer)); + let boxed_tokenizer = Box::new(self.tokenizer); TextAnalyzerBuilder { tokenizer: boxed_tokenizer, }