ratatui_toolkit/widgets/code_diff/foundation/diff_line/methods/prefix.rs
1use crate::widgets::code_diff::diff_line::DiffLine;
2use crate::widgets::code_diff::enums::DiffLineKind;
3
4impl DiffLine {
5 /// Returns the prefix character for this line kind.
6 ///
7 /// - Context lines: ' ' (space)
8 /// - Added lines: '+'
9 /// - Removed lines: '-'
10 /// - Hunk headers: '@'
11 ///
12 /// # Returns
13 ///
14 /// A single character prefix for display
15 ///
16 /// # Example
17 ///
18 /// ```rust
19 /// use ratatui_toolkit::code_diff::DiffLine;
20 ///
21 /// let added = DiffLine::added("new line", 5);
22 /// assert_eq!(added.prefix(), '+');
23 ///
24 /// let removed = DiffLine::removed("old line", 5);
25 /// assert_eq!(removed.prefix(), '-');
26 /// ```
27 pub fn prefix(&self) -> char {
28 match self.kind {
29 DiffLineKind::Context => ' ',
30 DiffLineKind::Added => '+',
31 DiffLineKind::Removed => '-',
32 DiffLineKind::HunkHeader => '@',
33 }
34 }
35}