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}