Truncate a string for summary display, adding "..." if truncated.
(s: &str, max_len: usize)
| 607 | |
| 608 | /// Truncate a string for summary display, adding "..." if truncated. |
| 609 | fn truncate_for_summary(s: &str, max_len: usize) -> String { |
| 610 | // Take first line only |
| 611 | let first_line = s.lines().next().unwrap_or(s); |
| 612 | let trimmed = first_line.trim(); |
| 613 | |
| 614 | if trimmed.len() <= max_len { |
| 615 | trimmed.to_string() |
| 616 | } else { |
| 617 | let truncated: String = trimmed.chars().take(max_len.saturating_sub(3)).collect(); |
| 618 | format!("{}...", truncated) |
| 619 | } |
| 620 | } |
| 621 | |
| 622 | // ============================================================================= |
| 623 | // Tests |