feat: ergonomics for the SpanRange enum construction
This commit is contained in:
parent
5d479bcaf1
commit
101a020a2a
24
src/lib.rs
24
src/lib.rs
@ -50,6 +50,30 @@ pub enum SpanRange {
|
||||
RangeFull(std::ops::RangeFull),
|
||||
}
|
||||
|
||||
impl From<std::ops::Range<usize>> for SpanRange {
|
||||
fn from(value: std::ops::Range<usize>) -> Self {
|
||||
SpanRange::Range(value)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<std::ops::RangeTo<usize>> for SpanRange {
|
||||
fn from(value: std::ops::RangeTo<usize>) -> Self {
|
||||
SpanRange::RangeTo(value)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<std::ops::RangeFrom<usize>> for SpanRange {
|
||||
fn from(value: std::ops::RangeFrom<usize>) -> Self {
|
||||
SpanRange::RangeFrom(value)
|
||||
}
|
||||
}
|
||||
|
||||
impl From<std::ops::RangeFull> for SpanRange {
|
||||
fn from(value: std::ops::RangeFull) -> Self {
|
||||
SpanRange::RangeFull(value)
|
||||
}
|
||||
}
|
||||
|
||||
/// An input that can provide a span of a range of the input.
|
||||
pub trait Span<O> {
|
||||
fn span(&self, idx: SpanRange) -> O;
|
||||
|
Loading…
x
Reference in New Issue
Block a user