Skip to main content

oxilean_parse/token/
tokenngramiter_traits.rs

1//! # TokenNgramIter - Trait Implementations
2//!
3//! This module contains trait implementations for `TokenNgramIter`.
4//!
5//! ## Implemented Traits
6//!
7//! - `Iterator`
8//!
9//! 🤖 Generated with [SplitRS](https://github.com/cool-japan/splitrs)
10
11use crate::tokens::Token;
12
13use super::types::TokenNgramIter;
14
15impl<'a> Iterator for TokenNgramIter<'a> {
16    type Item = &'a [Token];
17    fn next(&mut self) -> Option<Self::Item> {
18        if self.pos + self.window <= self.tokens.len() {
19            let slice = &self.tokens[self.pos..self.pos + self.window];
20            self.pos += 1;
21            Some(slice)
22        } else {
23            None
24        }
25    }
26}