1
0
mirror of https://github.com/sharkdp/bat.git synced 2025-09-03 03:42:26 +01:00

Major restructuring of theme/syntax handling

This commit is contained in:
sharkdp
2020-03-21 16:48:27 +01:00
committed by David Peter
parent b1b8addf7e
commit 06b7be7ee9
10 changed files with 84 additions and 72 deletions

View File

@@ -6,20 +6,22 @@ pub struct LineRange {
pub upper: usize,
}
impl LineRange {
pub fn from(range_raw: &str) -> Result<LineRange> {
LineRange::parse_range(range_raw)
}
pub fn new() -> LineRange {
impl Default for LineRange {
fn default() -> LineRange {
LineRange {
lower: usize::min_value(),
upper: usize::max_value(),
}
}
}
impl LineRange {
pub fn from(range_raw: &str) -> Result<LineRange> {
LineRange::parse_range(range_raw)
}
pub fn parse_range(range_raw: &str) -> Result<LineRange> {
let mut new_range = LineRange::new();
let mut new_range = LineRange::default();
if range_raw.bytes().nth(0).ok_or("Empty line range")? == b':' {
new_range.upper = range_raw[1..].parse()?;
@@ -103,12 +105,18 @@ pub enum RangeCheckResult {
AfterLastRange,
}
#[derive(Debug, Clone, Default)]
#[derive(Debug, Clone)]
pub struct LineRanges {
ranges: Vec<LineRange>,
largest_upper_bound: usize,
}
impl Default for LineRanges {
fn default() -> Self {
LineRanges::from(vec![LineRange { lower: 0, upper: 0 }])
}
}
impl LineRanges {
pub fn from(ranges: Vec<LineRange>) -> LineRanges {
let largest_upper_bound = ranges