summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordennisschagt <dennisschagt@gmail.com>2020-03-19 00:29:54 +0100
committerdennisschagt <dennisschagt@gmail.com>2020-03-19 00:29:54 +0100
commitd17a3437fa311a8c9a0fb57caf58c42b144f55ad (patch)
tree8ba320bda30b4f2478d867128af93384c7c8ebd4
parentcf084235fb0c34ded3df57e83c3009519cc9f457 (diff)
Add inline documentation for strwidth_stfl()
-rw-r--r--rust/libnewsboat/src/utils.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/rust/libnewsboat/src/utils.rs b/rust/libnewsboat/src/utils.rs
index 05a9d19e..7c338329 100644
--- a/rust/libnewsboat/src/utils.rs
+++ b/rust/libnewsboat/src/utils.rs
@@ -288,6 +288,17 @@ pub fn strwidth(rs_str: &str) -> usize {
UnicodeWidthStr::width(rs_str)
}
+/// Returns the with of `rs_str` when displayed on screen.
+///
+/// STFL tags (e.g. `<b>`, `<foobar>`, `</>`) are counted as having 0 width.
+/// Escaped less-than sign (`<` escaped as `<>`) is counted as having a width of 1 character.
+/// ```
+/// use libnewsboat::utils::strwidth_stfl;
+/// assert_eq!(strwidth_stfl("a"), 1);
+/// assert_eq!(strwidth_stfl("abc<tag>def"), 6);
+/// assert_eq!(strwidth_stfl("less-than: <>"), 12);
+/// assert_eq!(strwidth_stfl("ABCDEF"), 12);
+///```
pub fn strwidth_stfl(rs_str: &str) -> usize {
let mut s = &rs_str[..];
let mut width = 0;