From dd048cdabede4967fbfc08a9621746144742ccf2 Mon Sep 17 00:00:00 2001 From: dvkt Date: Tue, 17 Dec 2019 14:00:01 -0800 Subject: [PATCH] track longest line --- README.md | 2 -- src/menu.rs | 12 +++++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 77a83dc..3231884 100644 --- a/README.md +++ b/README.md @@ -55,8 +55,6 @@ dirt simple terminal gopher client. - [ ] play sound file in background - [ ] render markdown-lite - [ ] display HTML-lite -- [ ] stop DOWN at last page -- [ ] stop PGNDOWN at last page - [ ] ? download to pwd - [ ] ? download to custom location - [ ] center content diff --git a/src/menu.rs b/src/menu.rs index c6a4166..e0847dd 100644 --- a/src/menu.rs +++ b/src/menu.rs @@ -13,6 +13,7 @@ pub struct MenuView { pub struct Menu { url: String, // gopher url lines: Vec, // lines + longest: usize, // size of the longest line } #[derive(Debug)] @@ -265,6 +266,7 @@ impl Menu { fn parse(url: String, raw: String) -> Menu { let mut lines = vec![]; let mut link = 0; + let mut longest = 0; for line in raw.split_terminator("\n") { if let Some(c) = line.chars().nth(0) { let typ = match c { @@ -322,6 +324,10 @@ impl Menu { } let link = if typ == Type::Info { 0 } else { link }; + if line.len() > longest { + longest = line.len(); + } + lines.push(Line { name, url, @@ -331,7 +337,11 @@ impl Menu { } } - Menu { url, lines } + Menu { + url, + lines, + longest, + } } }