Skip to content

Commit 92af9b5

Browse files
authored
Merge pull request #7 from yeslogic/wezm/unicode-16
Upgrade to Unicode 16.0
2 parents eee2ea4 + 4c23759 commit 92af9b5

File tree

5 files changed

+132
-170
lines changed

5 files changed

+132
-170
lines changed

Makefile

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1+
UCD:=16.0.0
2+
3+
# the sed command removes entries in the table that map to themselves, which
4+
# makes the data tables a bit smaller.
15
tables:
2-
yeslogic-ucd-generate case-folding-simple --rust-match ../ucd-generate/ucd-15.0.0/ > src/case_folding_simple.rs
3-
yeslogic-ucd-generate case-mapping ../ucd-generate/ucd-15.0.0/ > src/tables.rs
6+
yeslogic-ucd-generate case-folding-simple --rust-match ../ucd-generate/ucd-$(UCD)/ > src/case_folding_simple.rs
7+
yeslogic-ucd-generate case-mapping ../ucd-generate/ucd-$(UCD)/ > src/tables.rs
8+
cargo fmt
9+
sed -i.bak -E '/\(([0-9]+), &\[\1\]\)/d' src/tables.rs
10+
rm src/tables.rs.bak
411

512

613
.PHONY: tables

README.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ unicode-case-mapping
1010
<a href="https://crates.io/crates/unicode-case-mapping">
1111
<img src="https://img.shields.io/crates/v/unicode-case-mapping.svg" alt="Version">
1212
</a>
13-
<img src="https://img.shields.io/badge/unicode-15.0-informational" alt="Unicode Version">
13+
<img src="https://img.shields.io/badge/unicode-16.0-informational" alt="Unicode Version">
1414
<a href="https://github.com/yeslogic/unicode-case-mapping/blob/master/LICENSE">
1515
<img src="https://img.shields.io/crates/l/unicode-case-mapping.svg" alt="License">
1616
</a>
@@ -19,7 +19,7 @@ unicode-case-mapping
1919
<br>
2020

2121
Fast mapping of a `char` to lowercase, uppercase, titlecase, or its simple case folding
22-
in Rust using Unicode 15.0 data.
22+
in Rust using Unicode 16.0 data.
2323

2424
Usage
2525
-----
@@ -79,10 +79,8 @@ some runs of repeated values in the first level array.
7979
Regenerating `tables.rs`
8080
------------------------
8181

82-
1. Regenerate with `yeslogic-ucd-generate` (see header of file).
83-
2. Add `#[allow(dead_code)]` to each table to prevent warnings.
84-
3. Delete entries that map to themselves. E.g. in Vim:
85-
`:g/(\(\d\+\), &\[\1\])/d`.
82+
1. Regenerate with `yeslogic-ucd-generate` (run `make`).
83+
2. Add/restore `#[allow(dead_code)]` to each table to prevent warnings.
8684

8785
[ucd-generate]: https://github.com/yeslogic/ucd-generate
8886
[to_uppercase]: https://doc.rust-lang.org/std/primitive.char.html#method.to_uppercase

src/case_folding_simple.rs

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
// DO NOT EDIT THIS FILE. IT WAS AUTOMATICALLY GENERATED BY:
22
//
3-
// yeslogic-ucd-generate case-folding-simple --rust-match ../ucd-generate/ucd-15.0.0/
3+
// yeslogic-ucd-generate case-folding-simple --rust-match ../ucd-generate/ucd-16.0.0/
44
//
5-
// Unicode version: 15.0.0.
5+
// Unicode version: 16.0.0.
66
//
7-
// yeslogic-ucd-generate 0.6.0 is available on crates.io.
7+
// yeslogic-ucd-generate 0.7.0 is available on crates.io.
88

99
use std::num::NonZeroU32;
1010

@@ -547,6 +547,7 @@ pub fn case_folding_simple(cp: u32) -> Option<NonZeroU32> {
547547
7302 => Some(NonZeroU32::new_unchecked(1098)),
548548
7303 => Some(NonZeroU32::new_unchecked(1123)),
549549
7304 => Some(NonZeroU32::new_unchecked(42571)),
550+
7305 => Some(NonZeroU32::new_unchecked(7306)),
550551
7312 => Some(NonZeroU32::new_unchecked(4304)),
551552
7313 => Some(NonZeroU32::new_unchecked(4305)),
552553
7314 => Some(NonZeroU32::new_unchecked(4306)),
@@ -801,10 +802,12 @@ pub fn case_folding_simple(cp: u32) -> Option<NonZeroU32> {
801802
8138 => Some(NonZeroU32::new_unchecked(8052)),
802803
8139 => Some(NonZeroU32::new_unchecked(8053)),
803804
8140 => Some(NonZeroU32::new_unchecked(8131)),
805+
8147 => Some(NonZeroU32::new_unchecked(912)),
804806
8152 => Some(NonZeroU32::new_unchecked(8144)),
805807
8153 => Some(NonZeroU32::new_unchecked(8145)),
806808
8154 => Some(NonZeroU32::new_unchecked(8054)),
807809
8155 => Some(NonZeroU32::new_unchecked(8055)),
810+
8163 => Some(NonZeroU32::new_unchecked(944)),
808811
8168 => Some(NonZeroU32::new_unchecked(8160)),
809812
8169 => Some(NonZeroU32::new_unchecked(8161)),
810813
8170 => Some(NonZeroU32::new_unchecked(8058)),
@@ -1097,9 +1100,13 @@ pub fn case_folding_simple(cp: u32) -> Option<NonZeroU32> {
10971100
42950 => Some(NonZeroU32::new_unchecked(7566)),
10981101
42951 => Some(NonZeroU32::new_unchecked(42952)),
10991102
42953 => Some(NonZeroU32::new_unchecked(42954)),
1103+
42955 => Some(NonZeroU32::new_unchecked(612)),
1104+
42956 => Some(NonZeroU32::new_unchecked(42957)),
11001105
42960 => Some(NonZeroU32::new_unchecked(42961)),
11011106
42966 => Some(NonZeroU32::new_unchecked(42967)),
11021107
42968 => Some(NonZeroU32::new_unchecked(42969)),
1108+
42970 => Some(NonZeroU32::new_unchecked(42971)),
1109+
42972 => Some(NonZeroU32::new_unchecked(411)),
11031110
42997 => Some(NonZeroU32::new_unchecked(42998)),
11041111
43888 => Some(NonZeroU32::new_unchecked(5024)),
11051112
43889 => Some(NonZeroU32::new_unchecked(5025)),
@@ -1181,6 +1188,7 @@ pub fn case_folding_simple(cp: u32) -> Option<NonZeroU32> {
11811188
43965 => Some(NonZeroU32::new_unchecked(5101)),
11821189
43966 => Some(NonZeroU32::new_unchecked(5102)),
11831190
43967 => Some(NonZeroU32::new_unchecked(5103)),
1191+
64261 => Some(NonZeroU32::new_unchecked(64262)),
11841192
65313 => Some(NonZeroU32::new_unchecked(65345)),
11851193
65314 => Some(NonZeroU32::new_unchecked(65346)),
11861194
65315 => Some(NonZeroU32::new_unchecked(65347)),
@@ -1369,6 +1377,28 @@ pub fn case_folding_simple(cp: u32) -> Option<NonZeroU32> {
13691377
68784 => Some(NonZeroU32::new_unchecked(68848)),
13701378
68785 => Some(NonZeroU32::new_unchecked(68849)),
13711379
68786 => Some(NonZeroU32::new_unchecked(68850)),
1380+
68944 => Some(NonZeroU32::new_unchecked(68976)),
1381+
68945 => Some(NonZeroU32::new_unchecked(68977)),
1382+
68946 => Some(NonZeroU32::new_unchecked(68978)),
1383+
68947 => Some(NonZeroU32::new_unchecked(68979)),
1384+
68948 => Some(NonZeroU32::new_unchecked(68980)),
1385+
68949 => Some(NonZeroU32::new_unchecked(68981)),
1386+
68950 => Some(NonZeroU32::new_unchecked(68982)),
1387+
68951 => Some(NonZeroU32::new_unchecked(68983)),
1388+
68952 => Some(NonZeroU32::new_unchecked(68984)),
1389+
68953 => Some(NonZeroU32::new_unchecked(68985)),
1390+
68954 => Some(NonZeroU32::new_unchecked(68986)),
1391+
68955 => Some(NonZeroU32::new_unchecked(68987)),
1392+
68956 => Some(NonZeroU32::new_unchecked(68988)),
1393+
68957 => Some(NonZeroU32::new_unchecked(68989)),
1394+
68958 => Some(NonZeroU32::new_unchecked(68990)),
1395+
68959 => Some(NonZeroU32::new_unchecked(68991)),
1396+
68960 => Some(NonZeroU32::new_unchecked(68992)),
1397+
68961 => Some(NonZeroU32::new_unchecked(68993)),
1398+
68962 => Some(NonZeroU32::new_unchecked(68994)),
1399+
68963 => Some(NonZeroU32::new_unchecked(68995)),
1400+
68964 => Some(NonZeroU32::new_unchecked(68996)),
1401+
68965 => Some(NonZeroU32::new_unchecked(68997)),
13721402
71840 => Some(NonZeroU32::new_unchecked(71872)),
13731403
71841 => Some(NonZeroU32::new_unchecked(71873)),
13741404
71842 => Some(NonZeroU32::new_unchecked(71874)),

src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
//!
88
//! // U+0307 is COMBINING DOT ABOVE
99
//! assert_eq!(unicode_case_mapping::to_lowercase('İ'), ['i' as u32, 0x0307]);
10-
//! assert_eq!(unicode_case_mapping::to_lowercase('ß'), ['ß' as u32, 0]);
10+
//! assert_eq!(unicode_case_mapping::to_lowercase('ß'), [0; 2]);
1111
//! assert_eq!(unicode_case_mapping::to_uppercase('ß'), ['S' as u32, 'S' as u32, 0]);
1212
//! assert_eq!(unicode_case_mapping::to_titlecase('ß'), ['S' as u32, 's' as u32, 0]);
1313
//! assert_eq!(unicode_case_mapping::to_titlecase('-'), [0; 3]);
@@ -23,4 +23,4 @@ pub use case_mapping::{case_folded, to_lowercase, to_titlecase, to_uppercase};
2323

2424
/// The version of [Unicode](http://www.unicode.org/)
2525
/// that this version of unicode-case-mapping was generated from.
26-
pub const UNICODE_VERSION: (u64, u64, u64) = (15, 0, 0);
26+
pub const UNICODE_VERSION: (u64, u64, u64) = (16, 0, 0);

0 commit comments

Comments
 (0)