in src/content/line.rs [289:311]
fn test_trim_ends() -> anyhow::Result<()> {
let line = |spans: &[&str]| -> anyhow::Result<Line> { spans.to_vec().try_into() };
let mut test = line(&["hello", "cat", "world"])?;
test.trim_ends(0, 15);
assert_eq!(test, line(&["hello", "cat", "world"])?);
test.trim_ends(0, 13);
assert_eq!(test, line(&["hello", "cat", "world"])?);
let mut test = line(&["hello", "cat", "world"])?;
test.trim_ends(2, 10);
assert_eq!(test, line(&["llo", "cat", "worl"])?);
let mut test = line(&["hello", "cat", "world"])?;
test.trim_ends(6, 2);
assert_eq!(test, line(&["at"])?);
let mut test = line(&["hello", "cat", "world"])?;
test.trim_ends(9, 2);
assert_eq!(test, line(&["or"])?);
Ok(())
}