use core::range::{
Range,
RangeFrom,
RangeFull,
RangeInclusive,
RangeTo,
RangeToInclusive
};
use enum_dispatch::enum_dispatch;
#[enum_dispatch(RangeBounds)]
#[derive(Debug, PartialEq, Eq, Hash, Clone, Copy)]
pub enum Span {
Range(Range<usize>),
RangeFrom(RangeFrom<usize>),
RangeFull,
RangeInclusive(RangeInclusive<usize>),
RangeTo(RangeTo<usize>),
RangeToInclusive(RangeToInclusive<usize>)
}