@@ -32,7 +32,7 @@ fn include_table<R: BufRead, W: Write>(writer: &mut W, reader: &mut R, tablename
32
32
}
33
33
34
34
// Output table declaration.
35
- write ! ( writer, "pub const {}: &[(char, Option< char>, Option< &str> )] = &[\n " , tablename. replace( "." , "_" ) ) . unwrap ( ) ;
35
+ write ! ( writer, "pub const {}: &[(char, char, &str)] = &[\n " , tablename. replace( "." , "_" ) ) . unwrap ( ) ;
36
36
37
37
// For each line:
38
38
let target_re = Regex :: new ( r"([0-9A-F]+)(-([0-9A-F]+))?(; ([0-9A-F]+)( ([0-9A-F]+))?( ([0-9A-F]+))?( ([0-9A-F]+))?;)?" ) . unwrap ( ) ;
@@ -52,23 +52,11 @@ fn include_table<R: BufRead, W: Write>(writer: &mut W, reader: &mut R, tablename
52
52
53
53
// Generate an entry for each data line.
54
54
if let Some ( captures) = target_re. captures ( & line) {
55
- let start = captures. get ( 1 ) . unwrap ( ) ;
55
+ // start char
56
+ let start = captures. get ( 1 ) . unwrap ( ) . as_str ( ) ;
56
57
57
- // '\u{start}',
58
- let mut entry = String :: from ( "'\\ u{" ) ;
59
- entry. push_str ( start. as_str ( ) ) ;
60
- entry. push_str ( "}', " ) ;
61
-
62
- // '\u{start}', None,
63
- // '\u{start}', Some('\u{end}'),
64
- match captures. get ( 3 ) {
65
- None => entry. push_str ( "None, " ) ,
66
- Some ( end) => {
67
- entry. push_str ( "Some('\\ u{" ) ;
68
- entry. push_str ( end. as_str ( ) ) ;
69
- entry. push_str ( "}'), " ) ;
70
- }
71
- }
58
+ // end char (inclusive)
59
+ let end = captures. get ( 3 ) . map_or ( start, |m| m. as_str ( ) ) ;
72
60
73
61
// 0-4 character replacement string
74
62
let mut replace = String :: new ( ) ;
@@ -83,18 +71,7 @@ fn include_table<R: BufRead, W: Write>(writer: &mut W, reader: &mut R, tablename
83
71
}
84
72
}
85
73
86
- // '\u{start}', None, None
87
- // '\u{start}', None, Some("replace")
88
- if replace. is_empty ( ) {
89
- entry. push_str ( "None" ) ;
90
- } else {
91
- entry. push_str ( "Some(\" " ) ;
92
- entry. push_str ( & replace) ;
93
- entry. push_str ( "\" )" ) ;
94
- }
95
-
96
- // Output entry for this line.
97
- write ! ( writer, " ({}),\n " , entry) . unwrap ( ) ;
74
+ write ! ( writer, " ('\\ u{{{}}}', '\\ u{{{}}}', \" {}\" ),\n " , start, end, replace) . unwrap ( )
98
75
}
99
76
}
100
77
0 commit comments