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