Skip to content

Commit 43a1dc0

Browse files
committed
refactor: Extract calculation to get_lineno_width method
1 parent 1cc6e95 commit 43a1dc0

File tree

1 file changed

+22
-17
lines changed

1 file changed

+22
-17
lines changed

src/renderer/display_list.rs

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -72,23 +72,7 @@ impl<'a> fmt::Debug for DisplayList<'a> {
7272

7373
impl<'a> Display for DisplayList<'a> {
7474
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
75-
let max_lineno = self.body.iter().fold(None, |max, set| {
76-
set.display_lines.iter().fold(max, |max, line| match line {
77-
DisplayLine::Source { lineno, .. } => match (max, lineno) {
78-
(Some(max), Some(lineno)) => Some(cmp::max(max, *lineno)),
79-
(Some(max), None) => Some(max),
80-
(None, Some(lineno)) => Some(*lineno),
81-
(None, None) => None,
82-
},
83-
_ => max,
84-
})
85-
});
86-
let lineno_width = match max_lineno {
87-
None => 0,
88-
Some(0) => 1,
89-
Some(_max) if self.anonymized_line_numbers => ANONYMIZED_LINE_NUM.len(),
90-
Some(max) => (max as f64).log10().floor() as usize + 1,
91-
};
75+
let lineno_width = self.get_lineno_width();
9276

9377
let multiline_depth = self.body.iter().fold(0, |max, set| {
9478
set.display_lines.iter().fold(max, |max2, line| match line {
@@ -152,6 +136,27 @@ impl<'a> DisplayList<'a> {
152136
}
153137
Ok(())
154138
}
139+
140+
fn get_lineno_width(&self) -> usize {
141+
let max_lineno = self.body.iter().fold(None, |max, set| {
142+
set.display_lines.iter().fold(max, |max, line| match line {
143+
DisplayLine::Source { lineno, .. } => match (max, lineno) {
144+
(Some(max), Some(lineno)) => Some(cmp::max(max, *lineno)),
145+
(Some(max), None) => Some(max),
146+
(None, Some(lineno)) => Some(*lineno),
147+
(None, None) => None,
148+
},
149+
_ => max,
150+
})
151+
});
152+
let lineno_width = match max_lineno {
153+
None => 0,
154+
Some(0) => 1,
155+
Some(_max) if self.anonymized_line_numbers => ANONYMIZED_LINE_NUM.len(),
156+
Some(max) => (max as f64).log10().floor() as usize + 1,
157+
};
158+
lineno_width
159+
}
155160
}
156161

157162
#[derive(Debug, PartialEq)]

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy