vtcode_ui/design/
constants.rs1pub const ELLIPSIS: &str = "\u{2026}";
8
9pub(crate) const ELLIPSIS_CHAR: char = '\u{2026}';
11
12pub(crate) const ELLIPSIS_ASCII: &str = "...";
14
15pub(crate) const INLINE_PREVIEW_ELLIPSIS: &str = ELLIPSIS;
17
18pub(crate) const COMPACT_MAX_COLS: u16 = 80;
22
23pub(crate) const COMPACT_MAX_ROWS: u16 = 20;
25
26pub(crate) const WIDE_MIN_COLS: u16 = 120;
28
29pub(crate) const WIDE_MIN_ROWS: u16 = 24;
31
32pub const SPACING_TIGHT: u16 = 1;
36
37pub const SPACING_NORMAL: u16 = 2;
39
40pub const SPACING_LOOSE: u16 = 4;
42
43pub const VALUE_COL: usize = 28;
46
47pub const GROUP_HEADER_ANCHOR: &str = "» ";
53
54#[cfg(test)]
55mod tests {
56 use super::*;
57
58 #[test]
59 fn ellipsis_is_unicode() {
60 assert_eq!(ELLIPSIS, "\u{2026}");
61 assert_eq!(ELLIPSIS.chars().count(), 1);
62 assert_eq!(ELLIPSIS.len(), 3); }
64
65 #[test]
66 fn ellipsis_char_matches_string() {
67 assert_eq!(ELLIPSIS_CHAR, '\u{2026}');
68 assert_eq!(ELLIPSIS_CHAR.to_string(), ELLIPSIS);
69 }
70
71 #[test]
72 fn ellipsis_ascii_is_three_dots() {
73 assert_eq!(ELLIPSIS_ASCII, "...");
74 assert_eq!(ELLIPSIS_ASCII.len(), 3);
75 }
76
77 #[test]
78 fn preview_ellipsis_delegates() {
79 assert_eq!(INLINE_PREVIEW_ELLIPSIS, ELLIPSIS);
80 }
81
82 #[test]
83 fn layout_breakpoints_are_ordered() {
84 const _: () = assert!(COMPACT_MAX_COLS < WIDE_MIN_COLS);
85 const _: () = assert!(COMPACT_MAX_ROWS < WIDE_MIN_ROWS);
86 }
87
88 #[test]
89 fn spacing_tokens_are_ordered() {
90 const _: () = assert!(SPACING_TIGHT < SPACING_NORMAL);
91 const _: () = assert!(SPACING_NORMAL < SPACING_LOOSE);
92 }
93}