unobtanium_segmenter/chain/start_segmentation_chain.rs
1use crate::SegmentedToken;
2
3/// Helper for starting an iterator chain.
4///
5/// Turns any `str` or `String` into an iterator over a single [SegmentedToken].
6///
7/// (Can also deal with anything else that implements `Into<SegmentedToken>`.)
8pub trait StartSegmentationChain<'a> {
9 /// Create the iterator.
10 fn start_segmentation_chain(self) -> impl Iterator<Item = SegmentedToken<'a>>;
11}
12
13impl<'a, T: Into<SegmentedToken<'a>>> StartSegmentationChain<'a> for T {
14 fn start_segmentation_chain(self) -> impl Iterator<Item = SegmentedToken<'a>> {
15 Some(self.into()).into_iter()
16 }
17}