Create Stream using custom Span
This commit is contained in:
parent
8bf446b9c3
commit
d64a971ed4
1 changed files with 12 additions and 0 deletions
12
src/span.rs
12
src/span.rs
|
|
@ -1,6 +1,8 @@
|
|||
use std::fmt;
|
||||
use std::ops::Range;
|
||||
|
||||
use chumsky::Stream;
|
||||
|
||||
#[derive(Clone, Copy)]
|
||||
pub struct Span {
|
||||
start: usize,
|
||||
|
|
@ -64,3 +66,13 @@ impl chumsky::Span for Span {
|
|||
self.end
|
||||
}
|
||||
}
|
||||
|
||||
pub fn stream_from_str<'a>(
|
||||
s: &'a str,
|
||||
) -> Stream<'a, char, Span, Box<dyn Iterator<Item = (char, Span)> + 'a>> {
|
||||
let len = s.chars().count();
|
||||
Stream::from_iter(
|
||||
Span::new(len, len),
|
||||
Box::new(s.chars().enumerate().map(|(i, c)| (c, Span::new(i, i + 1)))),
|
||||
)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue