makepad_code_editor/
char.rs1pub trait CharExt {
2 fn is_opening_delimiter(self) -> bool;
3 fn is_closing_delimiter(self) -> bool;
4 fn column_count(self) -> usize;
5 fn opposite_delimiter(&self) -> Option<char>;
6}
7
8impl CharExt for char {
9 fn is_opening_delimiter(self) -> bool {
10 match self {
11 '(' | '[' | '{' => true,
12 _ => false,
13 }
14 }
15
16 fn is_closing_delimiter(self) -> bool {
17 match self {
18 ')' | ']' | '}' => true,
19 _ => false,
20 }
21 }
22
23 fn column_count(self) -> usize {
24 1
25 }
26
27 fn opposite_delimiter(&self) -> Option<char> {
28 Some(match self {
29 '(' => ')',
30 ')' => '(',
31 '[' => ']',
32 ']' => '[',
33 '{' => '}',
34 '}' => '{',
35 _ => return None,
36 })
37 }
38}