1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
pub use *;
/// The trait for the elements yielded by the [`crate::Splitter`]
///
/// ### Example
/// ```rust
/// use splitter::Info;
///
/// #[derive(Default)]
/// struct SpanCtx(usize);
///
/// struct Span {
/// start: usize,
/// end: usize,
/// }
///
/// impl<'a, T> Info<'a, T> for Span {
/// type Context = SpanCtx;
///
/// fn generate(ctx: &mut Self::Context, ts: &'a [T]) -> Self {
/// let start = ctx.0;
/// ctx.0 += ts.len();
/// Self { start, end: ctx.0 }
/// }
/// }
/// ```