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}