use std::fmt;
#[derive(Clone, Copy, PartialEq, Eq)]
pub struct Range {
pub start: usize,
pub end: usize,
}
impl Range {
pub fn start(&self) -> usize {
self.start
}
pub fn end(&self) -> usize {
self.end
}
}
impl fmt::Debug for Range {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}..{}", self.start, self.end)
}
}
impl fmt::Display for Range {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}..{}", self.start, self.end)
}
}
impl From<Range> for std::ops::Range<usize> {
fn from(range: Range) -> std::ops::Range<usize> {
range.start..range.end
}
}
impl From<std::ops::Range<usize>> for Range {
fn from(range: std::ops::Range<usize>) -> Range {
Range {
start: range.start,
end: range.end,
}
}
}