mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +00:00
Use Cow<str> to avoid unnecessary memory reallocations
This commit is contained in:
parent
b540d103ab
commit
70c497ef3d
3 changed files with 835 additions and 821 deletions
|
|
@ -1,822 +1,5 @@
|
||||||
#[inline(always)]
|
mod table;
|
||||||
fn transliteration(c: &char) -> String {
|
mod traits;
|
||||||
let c_val = *c as usize;
|
|
||||||
if c_val < 192 {
|
|
||||||
c.to_string()
|
|
||||||
} else if c_val < 688 {
|
|
||||||
// NOTE: This is safe since we hard coded the array as const and know its bounds
|
|
||||||
unsafe { TRANSLITERATE_0.get_unchecked(c_val - 192usize).to_string() }
|
|
||||||
} else if c_val > 7683 && c_val < 7930 {
|
|
||||||
// NOTE: This is safe since we hard coded the array as const and know its bounds
|
|
||||||
unsafe { TRANSLITERATE_1.get_unchecked(c_val - 7684usize).to_string() }
|
|
||||||
} else if c_val > 64256 && c_val < 64259 {
|
|
||||||
// NOTE: This is safe since we hard coded the array as const and know its bounds
|
|
||||||
unsafe { TRANSLITERATE_2.get_unchecked(c_val - 64257usize).to_string() }
|
|
||||||
} else {
|
|
||||||
c.to_string()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub trait Transliterator {
|
use table::*;
|
||||||
fn transliterate(&self) -> String;
|
pub use traits::*;
|
||||||
}
|
|
||||||
|
|
||||||
impl Transliterator for &[u8] {
|
|
||||||
fn transliterate(&self) -> String {
|
|
||||||
match std::str::from_utf8(*self) {
|
|
||||||
Ok(ts) => ts.chars().fold(String::new(), |acc, s| acc + &transliteration(&s)),
|
|
||||||
// If the [u8] fails to convert to a utf8 string
|
|
||||||
Err(_) => "invalid".to_string(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// this array holds char values 192-687
|
|
||||||
const TRANSLITERATE_0: [&'static str; 496] = [
|
|
||||||
"A", // À 192
|
|
||||||
"A", // Á 193
|
|
||||||
"A", // Â 194
|
|
||||||
"A", // Ã 195
|
|
||||||
"A", // Ä 196
|
|
||||||
"A", // Å 197
|
|
||||||
"AE", // Æ 198
|
|
||||||
"C", // Ç 199
|
|
||||||
"E", // È 200
|
|
||||||
"E", // É 201
|
|
||||||
"E", // Ê 202
|
|
||||||
"E", // Ë 203
|
|
||||||
"I", // Ì 204
|
|
||||||
"I", // Í 205
|
|
||||||
"I", // Î 206
|
|
||||||
"I", // Ï 207
|
|
||||||
"D", // Ð 208
|
|
||||||
"N", // Ñ 209
|
|
||||||
"O", // Ò 210
|
|
||||||
"O", // Ó 211
|
|
||||||
"O", // Ô 212
|
|
||||||
"O", // Õ 213
|
|
||||||
"O", // Ö 214
|
|
||||||
"×", // × 215
|
|
||||||
"O", // Ø 216
|
|
||||||
"U", // Ù 217
|
|
||||||
"U", // Ú 218
|
|
||||||
"U", // Û 219
|
|
||||||
"U", // Ü 220
|
|
||||||
"Y", // Ý 221
|
|
||||||
"T", // Þ 222
|
|
||||||
"ss", // ß 223
|
|
||||||
"a", // à 224
|
|
||||||
"a", // á 225
|
|
||||||
"a", // â 226
|
|
||||||
"a", // ã 227
|
|
||||||
"a", // ä 228
|
|
||||||
"a", // å 229
|
|
||||||
"ae", // æ 230
|
|
||||||
"c", // ç 231
|
|
||||||
"e", // è 232
|
|
||||||
"e", // é 233
|
|
||||||
"e", // ê 234
|
|
||||||
"e", // ë 235
|
|
||||||
"i", // ì 236
|
|
||||||
"i", // í 237
|
|
||||||
"i", // î 238
|
|
||||||
"i", // ï 239
|
|
||||||
"d", // ð 240
|
|
||||||
"n", // ñ 241
|
|
||||||
"o", // ò 242
|
|
||||||
"o", // ó 243
|
|
||||||
"o", // ô 244
|
|
||||||
"o", // õ 245
|
|
||||||
"o", // ö 246
|
|
||||||
"÷", // ÷ 247
|
|
||||||
"o", // ø 248
|
|
||||||
"u", // ù 249
|
|
||||||
"u", // ú 250
|
|
||||||
"u", // û 251
|
|
||||||
"u", // ü 252
|
|
||||||
"y", // ý 253
|
|
||||||
"t", // þ 254
|
|
||||||
"y", // ÿ 255
|
|
||||||
"A", // Ā 256
|
|
||||||
"a", // ā 257
|
|
||||||
"A", // Ă 258
|
|
||||||
"a", // ă 259
|
|
||||||
"A", // Ą 260
|
|
||||||
"a", // ą 261
|
|
||||||
"C", // Ć 262
|
|
||||||
"c", // ć 263
|
|
||||||
"C", // Ĉ 264
|
|
||||||
"c", // ĉ 265
|
|
||||||
"C", // Ċ 266
|
|
||||||
"c", // ċ 267
|
|
||||||
"C", // Č 268
|
|
||||||
"c", // č 269
|
|
||||||
"D", // Ď 270
|
|
||||||
"d", // ď 271
|
|
||||||
"D", // Đ 272
|
|
||||||
"d", // đ 273
|
|
||||||
"E", // Ē 274
|
|
||||||
"e", // ē 275
|
|
||||||
"E", // Ĕ 276
|
|
||||||
"e", // ĕ 277
|
|
||||||
"E", // Ė 278
|
|
||||||
"e", // ė 279
|
|
||||||
"E", // Ę 280
|
|
||||||
"e", // ę 281
|
|
||||||
"E", // Ě 282
|
|
||||||
"e", // ě 283
|
|
||||||
"G", // Ĝ 284
|
|
||||||
"g", // ĝ 285
|
|
||||||
"G", // Ğ 286
|
|
||||||
"g", // ğ 287
|
|
||||||
"G", // Ġ 288
|
|
||||||
"g", // ġ 289
|
|
||||||
"G", // Ģ 290
|
|
||||||
"g", // ģ 291
|
|
||||||
"H", // Ĥ 292
|
|
||||||
"h", // ĥ 293
|
|
||||||
"H", // Ħ 294
|
|
||||||
"h", // ħ 295
|
|
||||||
"I", // Ĩ 296
|
|
||||||
"i", // ĩ 297
|
|
||||||
"I", // Ī 298
|
|
||||||
"i", // ī 299
|
|
||||||
"I", // Ĭ 300
|
|
||||||
"i", // ĭ 301
|
|
||||||
"I", // Į 302
|
|
||||||
"i", // į 303
|
|
||||||
"I", // İ 304
|
|
||||||
"i", // ı 305
|
|
||||||
"IJ", // IJ 306
|
|
||||||
"ij", // ij 307
|
|
||||||
"J", // Ĵ 308
|
|
||||||
"j", // ĵ 309
|
|
||||||
"K", // Ķ 310
|
|
||||||
"k", // ķ 311
|
|
||||||
"k", // ĸ 312
|
|
||||||
"L", // Ĺ 313
|
|
||||||
"l", // ĺ 314
|
|
||||||
"L", // Ļ 315
|
|
||||||
"l", // ļ 316
|
|
||||||
"L", // Ľ 317
|
|
||||||
"l", // ľ 318
|
|
||||||
"L", // Ŀ 319
|
|
||||||
"l", // ŀ 320
|
|
||||||
"L", // Ł 321
|
|
||||||
"l", // ł 322
|
|
||||||
"N", // Ń 323
|
|
||||||
"n", // ń 324
|
|
||||||
"N", // Ņ 325
|
|
||||||
"n", // ņ 326
|
|
||||||
"N", // Ň 327
|
|
||||||
"n", // ň 328
|
|
||||||
"n", // ʼn 329
|
|
||||||
"N", // Ŋ 330
|
|
||||||
"n", // ŋ 331
|
|
||||||
"O", // Ō 332
|
|
||||||
"o", // ō 333
|
|
||||||
"O", // Ŏ 334
|
|
||||||
"o", // ŏ 335
|
|
||||||
"O", // Ő 336
|
|
||||||
"o", // ő 337
|
|
||||||
"OE", // Œ 338
|
|
||||||
"oe", // œ 339
|
|
||||||
"R", // Ŕ 340
|
|
||||||
"r", // ŕ 341
|
|
||||||
"R", // Ŗ 342
|
|
||||||
"r", // ŗ 343
|
|
||||||
"R", // Ř 344
|
|
||||||
"r", // ř 345
|
|
||||||
"S", // Ś 346
|
|
||||||
"s", // ś 347
|
|
||||||
"S", // Ŝ 348
|
|
||||||
"s", // ŝ 349
|
|
||||||
"S", // Ş 350
|
|
||||||
"s", // ş 351
|
|
||||||
"S", // Š 352
|
|
||||||
"s", // š 353
|
|
||||||
"T", // Ţ 354
|
|
||||||
"t", // ţ 355
|
|
||||||
"T", // Ť 356
|
|
||||||
"t", // ť 357
|
|
||||||
"T", // Ŧ 358
|
|
||||||
"t", // ŧ 359
|
|
||||||
"U", // Ũ 360
|
|
||||||
"u", // ũ 361
|
|
||||||
"U", // Ū 362
|
|
||||||
"u", // ū 363
|
|
||||||
"U", // Ŭ 364
|
|
||||||
"u", // ŭ 365
|
|
||||||
"U", // Ů 366
|
|
||||||
"u", // ů 367
|
|
||||||
"U", // Ű 368
|
|
||||||
"u", // ű 369
|
|
||||||
"U", // Ų 370
|
|
||||||
"u", // ų 371
|
|
||||||
"W", // Ŵ 372
|
|
||||||
"w", // ŵ 373
|
|
||||||
"Y", // Ŷ 374
|
|
||||||
"y", // ŷ 375
|
|
||||||
"Y", // Ÿ 376
|
|
||||||
"Z", // Ź 377
|
|
||||||
"z", // ź 378
|
|
||||||
"Z", // Ż 379
|
|
||||||
"z", // ż 380
|
|
||||||
"Z", // Ž 381
|
|
||||||
"z", // ž 382
|
|
||||||
"s", // ſ 383
|
|
||||||
"ƀ", // ƀ 384
|
|
||||||
"B", // Ɓ 385
|
|
||||||
"Ƃ", // Ƃ 386
|
|
||||||
"ƃ", // ƃ 387
|
|
||||||
"Ƅ", // Ƅ 388
|
|
||||||
"ƅ", // ƅ 389
|
|
||||||
"O", // Ɔ 390
|
|
||||||
"Ƈ", // Ƈ 391
|
|
||||||
"ƈ", // ƈ 392
|
|
||||||
"Ɖ", // Ɖ 393
|
|
||||||
"D", // Ɗ 394
|
|
||||||
"Ƌ", // Ƌ 395
|
|
||||||
"ƌ", // ƌ 396
|
|
||||||
"ƍ", // ƍ 397
|
|
||||||
"Ǝ", // Ǝ 398
|
|
||||||
"E", // Ə 399
|
|
||||||
"E", // Ɛ 400
|
|
||||||
"F", // Ƒ 401
|
|
||||||
"f", // ƒ 402
|
|
||||||
"Ɠ", // Ɠ 403
|
|
||||||
"Ɣ", // Ɣ 404
|
|
||||||
"ƕ", // ƕ 405
|
|
||||||
"Ɩ", // Ɩ 406
|
|
||||||
"Ɨ", // Ɨ 407
|
|
||||||
"K", // Ƙ 408
|
|
||||||
"k", // ƙ 409
|
|
||||||
"l", // ƚ 410
|
|
||||||
"l", // ƛ 411
|
|
||||||
"Ɯ", // Ɯ 412
|
|
||||||
"N", // Ɲ 413
|
|
||||||
"ƞ", // ƞ 414
|
|
||||||
"O", // Ɵ 415
|
|
||||||
"O", // Ơ 416
|
|
||||||
"o", // ơ 417
|
|
||||||
"Ƣ", // Ƣ 418
|
|
||||||
"ƣ", // ƣ 419
|
|
||||||
"Ƥ", // Ƥ 420
|
|
||||||
"ƥ", // ƥ 421
|
|
||||||
"Ʀ", // Ʀ 422
|
|
||||||
"Ƨ", // Ƨ 423
|
|
||||||
"ƨ", // ƨ 424
|
|
||||||
"Ʃ", // Ʃ 425
|
|
||||||
"ƪ", // ƪ 426
|
|
||||||
"ƫ", // ƫ 427
|
|
||||||
"Ƭ", // Ƭ 428
|
|
||||||
"ƭ", // ƭ 429
|
|
||||||
"Ʈ", // Ʈ 430
|
|
||||||
"U", // Ư 431
|
|
||||||
"u", // ư 432
|
|
||||||
"Ʊ", // Ʊ 433
|
|
||||||
"Ʋ", // Ʋ 434
|
|
||||||
"Y", // Ƴ 435
|
|
||||||
"y", // ƴ 436
|
|
||||||
"Z", // Ƶ 437
|
|
||||||
"z", // ƶ 438
|
|
||||||
"Ʒ", // Ʒ 439
|
|
||||||
"Ƹ", // Ƹ 440
|
|
||||||
"ƹ", // ƹ 441
|
|
||||||
"ƺ", // ƺ 442
|
|
||||||
"ƻ", // ƻ 443
|
|
||||||
"Ƽ", // Ƽ 444
|
|
||||||
"ƽ", // ƽ 445
|
|
||||||
"ƾ", // ƾ 446
|
|
||||||
"ƿ", // ƿ 447
|
|
||||||
"ǀ", // ǀ 448
|
|
||||||
"ǁ", // ǁ 449
|
|
||||||
"ǂ", // ǂ 450
|
|
||||||
"ǃ", // ǃ 451
|
|
||||||
"DZ", // DŽ 452
|
|
||||||
"Dz", // Dž 453
|
|
||||||
"dz", // dž 454
|
|
||||||
"LJ", // LJ 455
|
|
||||||
"Lj", // Lj 456
|
|
||||||
"lj", // lj 457
|
|
||||||
"NJ", // NJ 458
|
|
||||||
"Nj", // Nj 459
|
|
||||||
"nj", // nj 460
|
|
||||||
"A", // Ǎ 461
|
|
||||||
"a", // ǎ 462
|
|
||||||
"I", // Ǐ 463
|
|
||||||
"i", // ǐ 464
|
|
||||||
"O", // Ǒ 465
|
|
||||||
"o", // ǒ 466
|
|
||||||
"U", // Ǔ 467
|
|
||||||
"u", // ǔ 468
|
|
||||||
"U", // Ǖ 469
|
|
||||||
"u", // ǖ 470
|
|
||||||
"U", // Ǘ 471
|
|
||||||
"u", // ǘ 472
|
|
||||||
"U", // Ǚ 473
|
|
||||||
"u", // ǚ 474
|
|
||||||
"U", // Ǜ 475
|
|
||||||
"u", // ǜ 476
|
|
||||||
"ǝ", // ǝ 477
|
|
||||||
"Ǟ", // Ǟ 478
|
|
||||||
"ǟ", // ǟ 479
|
|
||||||
"Ǡ", // Ǡ 480
|
|
||||||
"ǡ", // ǡ 481
|
|
||||||
"Ǣ", // Ǣ 482
|
|
||||||
"ǣ", // ǣ 483
|
|
||||||
"Ǥ", // Ǥ 484
|
|
||||||
"ǥ", // ǥ 485
|
|
||||||
"G", // Ǧ 486
|
|
||||||
"g", // ǧ 487
|
|
||||||
"Ǩ", // Ǩ 488
|
|
||||||
"ǩ", // ǩ 489
|
|
||||||
"O", // Ǫ 490
|
|
||||||
"o", // ǫ 491
|
|
||||||
"Ǭ", // Ǭ 492
|
|
||||||
"ǭ", // ǭ 493
|
|
||||||
"Ǯ", // Ǯ 494
|
|
||||||
"e", // ǯ 495
|
|
||||||
"j", // ǰ 496
|
|
||||||
"DZ", // DZ 497
|
|
||||||
"Dz", // Dz 498
|
|
||||||
"dz", // dz 499
|
|
||||||
"G", // Ǵ 500
|
|
||||||
"g", // ǵ 501
|
|
||||||
"Ƕ", // Ƕ 502
|
|
||||||
"Ƿ", // Ƿ 503
|
|
||||||
"N", // Ǹ 504
|
|
||||||
"n", // ǹ 505
|
|
||||||
"A", // Ǻ 506
|
|
||||||
"a", // ǻ 507
|
|
||||||
"AE", // Ǽ 508
|
|
||||||
"ae", // ǽ 509
|
|
||||||
"O", // Ǿ 510
|
|
||||||
"o", // ǿ 511
|
|
||||||
"Ȁ", // Ȁ 512
|
|
||||||
"ȁ", // ȁ 513
|
|
||||||
"Ȃ", // Ȃ 514
|
|
||||||
"ȃ", // ȃ 515
|
|
||||||
"Ȅ", // Ȅ 516
|
|
||||||
"ȅ", // ȅ 517
|
|
||||||
"Ȇ", // Ȇ 518
|
|
||||||
"ȇ", // ȇ 519
|
|
||||||
"Ȉ", // Ȉ 520
|
|
||||||
"ȉ", // ȉ 521
|
|
||||||
"Ȋ", // Ȋ 522
|
|
||||||
"ȋ", // ȋ 523
|
|
||||||
"Ȍ", // Ȍ 524
|
|
||||||
"ȍ", // ȍ 525
|
|
||||||
"Ȏ", // Ȏ 526
|
|
||||||
"ȏ", // ȏ 527
|
|
||||||
"Ȑ", // Ȑ 528
|
|
||||||
"ȑ", // ȑ 529
|
|
||||||
"Ȓ", // Ȓ 530
|
|
||||||
"ȓ", // ȓ 531
|
|
||||||
"Ȕ", // Ȕ 532
|
|
||||||
"ȕ", // ȕ 533
|
|
||||||
"Ȗ", // Ȗ 534
|
|
||||||
"ȗ", // ȗ 535
|
|
||||||
"S", // Ș 536
|
|
||||||
"s", // ș 537
|
|
||||||
"T", // Ț 538
|
|
||||||
"t", // ț 539
|
|
||||||
"Ȝ", // Ȝ 540
|
|
||||||
"ȝ", // ȝ 541
|
|
||||||
"Ȟ", // Ȟ 542
|
|
||||||
"ȟ", // ȟ 543
|
|
||||||
"Ƞ", // Ƞ 544
|
|
||||||
"ȡ", // ȡ 545
|
|
||||||
"Ȣ", // Ȣ 546
|
|
||||||
"ȣ", // ȣ 547
|
|
||||||
"Ȥ", // Ȥ 548
|
|
||||||
"ȥ", // ȥ 549
|
|
||||||
"Ȧ", // Ȧ 550
|
|
||||||
"ȧ", // ȧ 551
|
|
||||||
"Ȩ", // Ȩ 552
|
|
||||||
"ȩ", // ȩ 553
|
|
||||||
"Ȫ", // Ȫ 554
|
|
||||||
"ȫ", // ȫ 555
|
|
||||||
"Ȭ", // Ȭ 556
|
|
||||||
"ȭ", // ȭ 557
|
|
||||||
"Ȯ", // Ȯ 558
|
|
||||||
"ȯ", // ȯ 559
|
|
||||||
"Ȱ", // Ȱ 560
|
|
||||||
"ȱ", // ȱ 561
|
|
||||||
"Y", // Ȳ 562
|
|
||||||
"y", // ȳ 563
|
|
||||||
"ȴ", // ȴ 564
|
|
||||||
"ȵ", // ȵ 565
|
|
||||||
"ȶ", // ȶ 566
|
|
||||||
"j", // ȷ 567
|
|
||||||
"ȸ", // ȸ 568
|
|
||||||
"ȹ", // ȹ 569
|
|
||||||
"Ⱥ", // Ⱥ 570
|
|
||||||
"Ȼ", // Ȼ 571
|
|
||||||
"ȼ", // ȼ 572
|
|
||||||
"L", // Ƚ 573
|
|
||||||
"Ⱦ", // Ⱦ 574
|
|
||||||
"ȿ", // ȿ 575
|
|
||||||
"ɀ", // ɀ 576
|
|
||||||
"Ɂ", // Ɂ 577
|
|
||||||
"ɂ", // ɂ 578
|
|
||||||
"Ƀ", // Ƀ 579
|
|
||||||
"Ʉ", // Ʉ 580
|
|
||||||
"Ʌ", // Ʌ 581
|
|
||||||
"Ɇ", // Ɇ 582
|
|
||||||
"ɇ", // ɇ 583
|
|
||||||
"Ɉ", // Ɉ 584
|
|
||||||
"ɉ", // ɉ 585
|
|
||||||
"Ɋ", // Ɋ 586
|
|
||||||
"ɋ", // ɋ 587
|
|
||||||
"Ɍ", // Ɍ 588
|
|
||||||
"ɍ", // ɍ 589
|
|
||||||
"Ɏ", // Ɏ 590
|
|
||||||
"ɏ", // ɏ 591
|
|
||||||
"a", // ɐ 592
|
|
||||||
"a", // ɑ 593
|
|
||||||
"a", // ɒ 594
|
|
||||||
"b", // ɓ 595
|
|
||||||
"o", // ɔ 596
|
|
||||||
"c", // ɕ 597
|
|
||||||
"d", // ɖ 598
|
|
||||||
"d", // ɗ 599
|
|
||||||
"e", // ɘ 600
|
|
||||||
"e", // ə 601
|
|
||||||
"e", // ɚ 602
|
|
||||||
"o", // ɛ 603
|
|
||||||
"e", // ɜ 604
|
|
||||||
"e", // ɝ 605
|
|
||||||
"e", // ɞ 606
|
|
||||||
"j", // ɟ 607
|
|
||||||
"g", // ɠ 608
|
|
||||||
"g", // ɡ 609
|
|
||||||
"ɢ", // ɢ 610
|
|
||||||
"g", // ɣ 611
|
|
||||||
"ɤ", // ɤ 612
|
|
||||||
"h", // ɥ 613
|
|
||||||
"h", // ɦ 614
|
|
||||||
"h", // ɧ 615
|
|
||||||
"i", // ɨ 616
|
|
||||||
"i", // ɩ 617
|
|
||||||
"ɪ", // ɪ 618
|
|
||||||
"l", // ɫ 619
|
|
||||||
"l", // ɬ 620
|
|
||||||
"l", // ɭ 621
|
|
||||||
"le", // ɮ 622
|
|
||||||
"m", // ɯ 623
|
|
||||||
"m", // ɰ 624
|
|
||||||
"m", // ɱ 625
|
|
||||||
"n", // ɲ 626
|
|
||||||
"n", // ɳ 627
|
|
||||||
"ɴ", // ɴ 628
|
|
||||||
"o", // ɵ 629
|
|
||||||
"OE", // ɶ 630
|
|
||||||
"ɷ", // ɷ 631
|
|
||||||
"p", // ɸ 632
|
|
||||||
"r", // ɹ 633
|
|
||||||
"r", // ɺ 634
|
|
||||||
"r", // ɻ 635
|
|
||||||
"r", // ɼ 636
|
|
||||||
"r", // ɽ 637
|
|
||||||
"r", // ɾ 638
|
|
||||||
"r", // ɿ 639
|
|
||||||
"ʀ", // ʀ 640
|
|
||||||
"R", // ʁ 641
|
|
||||||
"s", // ʂ 642
|
|
||||||
"s", // ʃ 643
|
|
||||||
"j", // ʄ 644
|
|
||||||
"s", // ʅ 645
|
|
||||||
"s", // ʆ 646
|
|
||||||
"t", // ʇ 647
|
|
||||||
"t", // ʈ 648
|
|
||||||
"u", // ʉ 649
|
|
||||||
"u", // ʊ 650
|
|
||||||
"v", // ʋ 651
|
|
||||||
"v", // ʌ 652
|
|
||||||
"w", // ʍ 653
|
|
||||||
"y", // ʎ 654
|
|
||||||
"ʏ", // ʏ 655
|
|
||||||
"z", // ʐ 656
|
|
||||||
"z", // ʑ 657
|
|
||||||
"e", // ʒ 658
|
|
||||||
"e", // ʓ 659
|
|
||||||
"ʔ", // ʔ 660
|
|
||||||
"ʕ", // ʕ 661
|
|
||||||
"ʖ", // ʖ 662
|
|
||||||
"C", // ʗ 663
|
|
||||||
"o", // ʘ 664
|
|
||||||
"ʙ", // ʙ 665
|
|
||||||
"e", // ʚ 666
|
|
||||||
"G", // ʛ 667
|
|
||||||
"ʜ", // ʜ 668
|
|
||||||
"j", // ʝ 669
|
|
||||||
"k", // ʞ 670
|
|
||||||
"ʟ", // ʟ 671
|
|
||||||
"q", // ʠ 672
|
|
||||||
"ʡ", // ʡ 673
|
|
||||||
"ʢ", // ʢ 674
|
|
||||||
"dz", // ʣ 675
|
|
||||||
"de", // ʤ 676
|
|
||||||
"dz", // ʥ 677
|
|
||||||
"ts", // ʦ 678
|
|
||||||
"ts", // ʧ 679
|
|
||||||
"tc", // ʨ 680
|
|
||||||
"fn", // ʩ 681
|
|
||||||
"ls", // ʪ 682
|
|
||||||
"lz", // ʫ 683
|
|
||||||
"W", // ʬ 684
|
|
||||||
"ʭ", // ʭ 685
|
|
||||||
"h", // ʮ 686
|
|
||||||
"h", // ʯ 687
|
|
||||||
];
|
|
||||||
|
|
||||||
// this array holds char values 7684-7929
|
|
||||||
const TRANSLITERATE_1: [&'static str; 246] = [
|
|
||||||
"B", // Ḅ 7684
|
|
||||||
"b", // ḅ 7685
|
|
||||||
"Ḇ", // Ḇ 7686
|
|
||||||
"ḇ", // ḇ 7687
|
|
||||||
"Ḉ", // Ḉ 7688
|
|
||||||
"ḉ", // ḉ 7689
|
|
||||||
"Ḋ", // Ḋ 7690
|
|
||||||
"ḋ", // ḋ 7691
|
|
||||||
"D", // Ḍ 7692
|
|
||||||
"d", // ḍ 7693
|
|
||||||
"D", // Ḏ 7694
|
|
||||||
"d", // ḏ 7695
|
|
||||||
"Ḑ", // Ḑ 7696
|
|
||||||
"ḑ", // ḑ 7697
|
|
||||||
"D", // Ḓ 7698
|
|
||||||
"d", // ḓ 7699
|
|
||||||
"Ḕ", // Ḕ 7700
|
|
||||||
"ḕ", // ḕ 7701
|
|
||||||
"Ḗ", // Ḗ 7702
|
|
||||||
"ḗ", // ḗ 7703
|
|
||||||
"Ḙ", // Ḙ 7704
|
|
||||||
"ḙ", // ḙ 7705
|
|
||||||
"Ḛ", // Ḛ 7706
|
|
||||||
"ḛ", // ḛ 7707
|
|
||||||
"Ḝ", // Ḝ 7708
|
|
||||||
"ḝ", // ḝ 7709
|
|
||||||
"Ḟ", // Ḟ 7710
|
|
||||||
"ḟ", // ḟ 7711
|
|
||||||
"G", // Ḡ 7712
|
|
||||||
"g", // ḡ 7713
|
|
||||||
"Ḣ", // Ḣ 7714
|
|
||||||
"ḣ", // ḣ 7715
|
|
||||||
"H", // Ḥ 7716
|
|
||||||
"h", // ḥ 7717
|
|
||||||
"Ḧ", // Ḧ 7718
|
|
||||||
"ḧ", // ḧ 7719
|
|
||||||
"Ḩ", // Ḩ 7720
|
|
||||||
"ḩ", // ḩ 7721
|
|
||||||
"H", // Ḫ 7722
|
|
||||||
"h", // ḫ 7723
|
|
||||||
"Ḭ", // Ḭ 7724
|
|
||||||
"ḭ", // ḭ 7725
|
|
||||||
"Ḯ", // Ḯ 7726
|
|
||||||
"ḯ", // ḯ 7727
|
|
||||||
"Ḱ", // Ḱ 7728
|
|
||||||
"ḱ", // ḱ 7729
|
|
||||||
"K", // Ḳ 7730
|
|
||||||
"k", // ḳ 7731
|
|
||||||
"K", // Ḵ 7732
|
|
||||||
"k", // ḵ 7733
|
|
||||||
"L", // Ḷ 7734
|
|
||||||
"l", // ḷ 7735
|
|
||||||
"L", // Ḹ 7736
|
|
||||||
"l", // ḹ 7737
|
|
||||||
"L", // Ḻ 7738
|
|
||||||
"l", // ḻ 7739
|
|
||||||
"L", // Ḽ 7740
|
|
||||||
"l", // ḽ 7741
|
|
||||||
"M", // Ḿ 7742
|
|
||||||
"m", // ḿ 7743
|
|
||||||
"M", // Ṁ 7744
|
|
||||||
"m", // ṁ 7745
|
|
||||||
"M", // Ṃ 7746
|
|
||||||
"m", // ṃ 7747
|
|
||||||
"N", // Ṅ 7748
|
|
||||||
"n", // ṅ 7749
|
|
||||||
"N", // Ṇ 7750
|
|
||||||
"n", // ṇ 7751
|
|
||||||
"N", // Ṉ 7752
|
|
||||||
"n", // ṉ 7753
|
|
||||||
"N", // Ṋ 7754
|
|
||||||
"n", // ṋ 7755
|
|
||||||
"Ṍ", // Ṍ 7756
|
|
||||||
"ṍ", // ṍ 7757
|
|
||||||
"Ṏ", // Ṏ 7758
|
|
||||||
"ṏ", // ṏ 7759
|
|
||||||
"Ṑ", // Ṑ 7760
|
|
||||||
"ṑ", // ṑ 7761
|
|
||||||
"Ṓ", // Ṓ 7762
|
|
||||||
"ṓ", // ṓ 7763
|
|
||||||
"Ṕ", // Ṕ 7764
|
|
||||||
"ṕ", // ṕ 7765
|
|
||||||
"Ṗ", // Ṗ 7766
|
|
||||||
"ṗ", // ṗ 7767
|
|
||||||
"R", // Ṙ 7768
|
|
||||||
"r", // ṙ 7769
|
|
||||||
"R", // Ṛ 7770
|
|
||||||
"r", // ṛ 7771
|
|
||||||
"R", // Ṝ 7772
|
|
||||||
"r", // ṝ 7773
|
|
||||||
"R", // Ṟ 7774
|
|
||||||
"r", // ṟ 7775
|
|
||||||
"S", // Ṡ 7776
|
|
||||||
"s", // ṡ 7777
|
|
||||||
"S", // Ṣ 7778
|
|
||||||
"s", // ṣ 7779
|
|
||||||
"Ṥ", // Ṥ 7780
|
|
||||||
"ṥ", // ṥ 7781
|
|
||||||
"Ṧ", // Ṧ 7782
|
|
||||||
"ṧ", // ṧ 7783
|
|
||||||
"Ṩ", // Ṩ 7784
|
|
||||||
"ṩ", // ṩ 7785
|
|
||||||
"Ṫ", // Ṫ 7786
|
|
||||||
"ṫ", // ṫ 7787
|
|
||||||
"T", // Ṭ 7788
|
|
||||||
"t", // ṭ 7789
|
|
||||||
"T", // Ṯ 7790
|
|
||||||
"t", // ṯ 7791
|
|
||||||
"T", // Ṱ 7792
|
|
||||||
"t", // ṱ 7793
|
|
||||||
"Ṳ", // Ṳ 7794
|
|
||||||
"ṳ", // ṳ 7795
|
|
||||||
"Ṵ", // Ṵ 7796
|
|
||||||
"ṵ", // ṵ 7797
|
|
||||||
"Ṷ", // Ṷ 7798
|
|
||||||
"ṷ", // ṷ 7799
|
|
||||||
"Ṹ", // Ṹ 7800
|
|
||||||
"ṹ", // ṹ 7801
|
|
||||||
"Ṻ", // Ṻ 7802
|
|
||||||
"ṻ", // ṻ 7803
|
|
||||||
"Ṽ", // Ṽ 7804
|
|
||||||
"ṽ", // ṽ 7805
|
|
||||||
"Ṿ", // Ṿ 7806
|
|
||||||
"ṿ", // ṿ 7807
|
|
||||||
"W", // Ẁ 7808
|
|
||||||
"w", // ẁ 7809
|
|
||||||
"W", // Ẃ 7810
|
|
||||||
"w", // ẃ 7811
|
|
||||||
"W", // Ẅ 7812
|
|
||||||
"w", // ẅ 7813
|
|
||||||
"Ẇ", // Ẇ 7814
|
|
||||||
"ẇ", // ẇ 7815
|
|
||||||
"Ẉ", // Ẉ 7816
|
|
||||||
"ẉ", // ẉ 7817
|
|
||||||
"Ẋ", // Ẋ 7818
|
|
||||||
"ẋ", // ẋ 7819
|
|
||||||
"Ẍ", // Ẍ 7820
|
|
||||||
"ẍ", // ẍ 7821
|
|
||||||
"Y", // Ẏ 7822
|
|
||||||
"y", // ẏ 7823
|
|
||||||
"Ẑ", // Ẑ 7824
|
|
||||||
"ẑ", // ẑ 7825
|
|
||||||
"Z", // Ẓ 7826
|
|
||||||
"z", // ẓ 7827
|
|
||||||
"Z", // Ẕ 7828
|
|
||||||
"z", // ẕ 7829
|
|
||||||
"h", // ẖ 7830
|
|
||||||
"t", // ẗ 7831
|
|
||||||
"ẘ", // ẘ 7832
|
|
||||||
"ẙ", // ẙ 7833
|
|
||||||
"ẚ", // ẚ 7834
|
|
||||||
"ẛ", // ẛ 7835
|
|
||||||
"ẜ", // ẜ 7836
|
|
||||||
"ẝ", // ẝ 7837
|
|
||||||
"SS", // ẞ 7838
|
|
||||||
"ẟ", // ẟ 7839
|
|
||||||
"A", // Ạ 7840
|
|
||||||
"a", // ạ 7841
|
|
||||||
"A", // Ả 7842
|
|
||||||
"a", // ả 7843
|
|
||||||
"A", // Ấ 7844
|
|
||||||
"a", // ấ 7845
|
|
||||||
"A", // Ầ 7846
|
|
||||||
"a", // ầ 7847
|
|
||||||
"A", // Ẩ 7848
|
|
||||||
"a", // ẩ 7849
|
|
||||||
"A", // Ẫ 7850
|
|
||||||
"a", // ẫ 7851
|
|
||||||
"A", // Ậ 7852
|
|
||||||
"a", // ậ 7853
|
|
||||||
"A", // Ắ 7854
|
|
||||||
"a", // ắ 7855
|
|
||||||
"A", // Ằ 7856
|
|
||||||
"a", // ằ 7857
|
|
||||||
"A", // Ẳ 7858
|
|
||||||
"a", // ẳ 7859
|
|
||||||
"A", // Ẵ 7860
|
|
||||||
"a", // ẵ 7861
|
|
||||||
"A", // Ặ 7862
|
|
||||||
"a", // ặ 7863
|
|
||||||
"E", // Ẹ 7864
|
|
||||||
"e", // ẹ 7865
|
|
||||||
"E", // Ẻ 7866
|
|
||||||
"e", // ẻ 7867
|
|
||||||
"E", // Ẽ 7868
|
|
||||||
"e", // ẽ 7869
|
|
||||||
"E", // Ế 7870
|
|
||||||
"e", // ế 7871
|
|
||||||
"E", // Ề 7872
|
|
||||||
"e", // ề 7873
|
|
||||||
"E", // Ể 7874
|
|
||||||
"e", // ể 7875
|
|
||||||
"E", // Ễ 7876
|
|
||||||
"e", // ễ 7877
|
|
||||||
"E", // Ệ 7878
|
|
||||||
"e", // ệ 7879
|
|
||||||
"I", // Ỉ 7880
|
|
||||||
"i", // ỉ 7881
|
|
||||||
"I", // Ị 7882
|
|
||||||
"i", // ị 7883
|
|
||||||
"O", // Ọ 7884
|
|
||||||
"o", // ọ 7885
|
|
||||||
"O", // Ỏ 7886
|
|
||||||
"o", // ỏ 7887
|
|
||||||
"O", // Ố 7888
|
|
||||||
"o", // ố 7889
|
|
||||||
"O", // Ồ 7890
|
|
||||||
"o", // ồ 7891
|
|
||||||
"O", // Ổ 7892
|
|
||||||
"o", // ổ 7893
|
|
||||||
"O", // Ỗ 7894
|
|
||||||
"o", // ỗ 7895
|
|
||||||
"O", // Ộ 7896
|
|
||||||
"o", // ộ 7897
|
|
||||||
"O", // Ớ 7898
|
|
||||||
"o", // ớ 7899
|
|
||||||
"O", // Ờ 7900
|
|
||||||
"o", // ờ 7901
|
|
||||||
"O", // Ở 7902
|
|
||||||
"o", // ở 7903
|
|
||||||
"O", // Ỡ 7904
|
|
||||||
"o", // ỡ 7905
|
|
||||||
"O", // Ợ 7906
|
|
||||||
"o", // ợ 7907
|
|
||||||
"U", // Ụ 7908
|
|
||||||
"u", // ụ 7909
|
|
||||||
"U", // Ủ 7910
|
|
||||||
"u", // ủ 7911
|
|
||||||
"U", // Ứ 7912
|
|
||||||
"u", // ứ 7913
|
|
||||||
"U", // Ừ 7914
|
|
||||||
"u", // ừ 7915
|
|
||||||
"U", // Ử 7916
|
|
||||||
"u", // ử 7917
|
|
||||||
"U", // Ữ 7918
|
|
||||||
"u", // ữ 7919
|
|
||||||
"U", // Ự 7920
|
|
||||||
"u", // ự 7921
|
|
||||||
"Y", // Ỳ 7922
|
|
||||||
"y", // ỳ 7923
|
|
||||||
"Y", // Ỵ 7924
|
|
||||||
"y", // ỵ 7925
|
|
||||||
"Y", // Ỷ 7926
|
|
||||||
"y", // ỷ 7927
|
|
||||||
"Y", // Ỹ 7928
|
|
||||||
"y", // ỹ 7929
|
|
||||||
];
|
|
||||||
|
|
||||||
// this array holds char values 64257-64258
|
|
||||||
const TRANSLITERATE_2: [&'static str; 2] = [
|
|
||||||
"fi", // fi 64257
|
|
||||||
"fl", // fl 64258
|
|
||||||
];
|
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
mod transliteration_tests {
|
|
||||||
use super::*;
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_transliterate() {
|
|
||||||
assert_eq!("Æcœ".as_bytes().transliterate(), "AEcoe".to_string());
|
|
||||||
assert_eq!(
|
|
||||||
"ěřůøĉĝĥĵŝŭèùÿėįųāēīūļķņģőűëïąćęłńśźżõșțčďĺľňŕšťýžéíñóúüåäöçîşûğăâđêôơưáàãảạ"
|
|
||||||
.as_bytes()
|
|
||||||
.transliterate(),
|
|
||||||
"eruocghjsueuyeiuaeiulkngoueiacelnszzostcdllnrstyzeinouuaaocisugaadeoouaaaaa".to_string(),
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
"áạàảãăắặằẳẵâấậầẩẫéẹèẻẽêếệềểễiíịìỉĩoóọòỏõôốộồổỗơớợờởỡúụùủũưứựừửữyýỵỳỷỹđ"
|
|
||||||
.as_bytes()
|
|
||||||
.transliterate(),
|
|
||||||
"aaaaaaaaaaaaaaaaaeeeeeeeeeeeiiiiiioooooooooooooooooouuuuuuuuuuuyyyyyyd".to_string(),
|
|
||||||
);
|
|
||||||
assert_ne!(
|
|
||||||
"ěřůøĉĝĥĵŝŭèùÿėįųāēīūļķņģőűëïąćęłńśźżõșțčďĺľňŕšťýžéíñóúüåäöçîşûğăâđêôơưáàãảạfifl"
|
|
||||||
.as_bytes()
|
|
||||||
.transliterate(),
|
|
||||||
"ěřůøĉĝĥĵŝŭèùÿėįųāēīūļķņģőűëïąćęłńśźżõșțčďĺľňŕšťýžéíñóúüåäöçîşûğăâđêôơưáàãảạfifl".to_string()
|
|
||||||
);
|
|
||||||
assert_eq!(
|
|
||||||
"THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOGthequickbrownfoxjumpedoverthelazydog"
|
|
||||||
.as_bytes()
|
|
||||||
.transliterate(),
|
|
||||||
"THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOGthequickbrownfoxjumpedoverthelazydog".to_string()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
||||||
762
yazi-shared/src/transliterate/table.rs
Normal file
762
yazi-shared/src/transliterate/table.rs
Normal file
|
|
@ -0,0 +1,762 @@
|
||||||
|
const TABLE_0: [&str; 496] = [
|
||||||
|
"A", // À 192
|
||||||
|
"A", // Á 193
|
||||||
|
"A", // Â 194
|
||||||
|
"A", // Ã 195
|
||||||
|
"A", // Ä 196
|
||||||
|
"A", // Å 197
|
||||||
|
"AE", // Æ 198
|
||||||
|
"C", // Ç 199
|
||||||
|
"E", // È 200
|
||||||
|
"E", // É 201
|
||||||
|
"E", // Ê 202
|
||||||
|
"E", // Ë 203
|
||||||
|
"I", // Ì 204
|
||||||
|
"I", // Í 205
|
||||||
|
"I", // Î 206
|
||||||
|
"I", // Ï 207
|
||||||
|
"D", // Ð 208
|
||||||
|
"N", // Ñ 209
|
||||||
|
"O", // Ò 210
|
||||||
|
"O", // Ó 211
|
||||||
|
"O", // Ô 212
|
||||||
|
"O", // Õ 213
|
||||||
|
"O", // Ö 214
|
||||||
|
"×", // × 215
|
||||||
|
"O", // Ø 216
|
||||||
|
"U", // Ù 217
|
||||||
|
"U", // Ú 218
|
||||||
|
"U", // Û 219
|
||||||
|
"U", // Ü 220
|
||||||
|
"Y", // Ý 221
|
||||||
|
"T", // Þ 222
|
||||||
|
"ss", // ß 223
|
||||||
|
"a", // à 224
|
||||||
|
"a", // á 225
|
||||||
|
"a", // â 226
|
||||||
|
"a", // ã 227
|
||||||
|
"a", // ä 228
|
||||||
|
"a", // å 229
|
||||||
|
"ae", // æ 230
|
||||||
|
"c", // ç 231
|
||||||
|
"e", // è 232
|
||||||
|
"e", // é 233
|
||||||
|
"e", // ê 234
|
||||||
|
"e", // ë 235
|
||||||
|
"i", // ì 236
|
||||||
|
"i", // í 237
|
||||||
|
"i", // î 238
|
||||||
|
"i", // ï 239
|
||||||
|
"d", // ð 240
|
||||||
|
"n", // ñ 241
|
||||||
|
"o", // ò 242
|
||||||
|
"o", // ó 243
|
||||||
|
"o", // ô 244
|
||||||
|
"o", // õ 245
|
||||||
|
"o", // ö 246
|
||||||
|
"÷", // ÷ 247
|
||||||
|
"o", // ø 248
|
||||||
|
"u", // ù 249
|
||||||
|
"u", // ú 250
|
||||||
|
"u", // û 251
|
||||||
|
"u", // ü 252
|
||||||
|
"y", // ý 253
|
||||||
|
"t", // þ 254
|
||||||
|
"y", // ÿ 255
|
||||||
|
"A", // Ā 256
|
||||||
|
"a", // ā 257
|
||||||
|
"A", // Ă 258
|
||||||
|
"a", // ă 259
|
||||||
|
"A", // Ą 260
|
||||||
|
"a", // ą 261
|
||||||
|
"C", // Ć 262
|
||||||
|
"c", // ć 263
|
||||||
|
"C", // Ĉ 264
|
||||||
|
"c", // ĉ 265
|
||||||
|
"C", // Ċ 266
|
||||||
|
"c", // ċ 267
|
||||||
|
"C", // Č 268
|
||||||
|
"c", // č 269
|
||||||
|
"D", // Ď 270
|
||||||
|
"d", // ď 271
|
||||||
|
"D", // Đ 272
|
||||||
|
"d", // đ 273
|
||||||
|
"E", // Ē 274
|
||||||
|
"e", // ē 275
|
||||||
|
"E", // Ĕ 276
|
||||||
|
"e", // ĕ 277
|
||||||
|
"E", // Ė 278
|
||||||
|
"e", // ė 279
|
||||||
|
"E", // Ę 280
|
||||||
|
"e", // ę 281
|
||||||
|
"E", // Ě 282
|
||||||
|
"e", // ě 283
|
||||||
|
"G", // Ĝ 284
|
||||||
|
"g", // ĝ 285
|
||||||
|
"G", // Ğ 286
|
||||||
|
"g", // ğ 287
|
||||||
|
"G", // Ġ 288
|
||||||
|
"g", // ġ 289
|
||||||
|
"G", // Ģ 290
|
||||||
|
"g", // ģ 291
|
||||||
|
"H", // Ĥ 292
|
||||||
|
"h", // ĥ 293
|
||||||
|
"H", // Ħ 294
|
||||||
|
"h", // ħ 295
|
||||||
|
"I", // Ĩ 296
|
||||||
|
"i", // ĩ 297
|
||||||
|
"I", // Ī 298
|
||||||
|
"i", // ī 299
|
||||||
|
"I", // Ĭ 300
|
||||||
|
"i", // ĭ 301
|
||||||
|
"I", // Į 302
|
||||||
|
"i", // į 303
|
||||||
|
"I", // İ 304
|
||||||
|
"i", // ı 305
|
||||||
|
"IJ", // IJ 306
|
||||||
|
"ij", // ij 307
|
||||||
|
"J", // Ĵ 308
|
||||||
|
"j", // ĵ 309
|
||||||
|
"K", // Ķ 310
|
||||||
|
"k", // ķ 311
|
||||||
|
"k", // ĸ 312
|
||||||
|
"L", // Ĺ 313
|
||||||
|
"l", // ĺ 314
|
||||||
|
"L", // Ļ 315
|
||||||
|
"l", // ļ 316
|
||||||
|
"L", // Ľ 317
|
||||||
|
"l", // ľ 318
|
||||||
|
"L", // Ŀ 319
|
||||||
|
"l", // ŀ 320
|
||||||
|
"L", // Ł 321
|
||||||
|
"l", // ł 322
|
||||||
|
"N", // Ń 323
|
||||||
|
"n", // ń 324
|
||||||
|
"N", // Ņ 325
|
||||||
|
"n", // ņ 326
|
||||||
|
"N", // Ň 327
|
||||||
|
"n", // ň 328
|
||||||
|
"n", // ʼn 329
|
||||||
|
"N", // Ŋ 330
|
||||||
|
"n", // ŋ 331
|
||||||
|
"O", // Ō 332
|
||||||
|
"o", // ō 333
|
||||||
|
"O", // Ŏ 334
|
||||||
|
"o", // ŏ 335
|
||||||
|
"O", // Ő 336
|
||||||
|
"o", // ő 337
|
||||||
|
"OE", // Œ 338
|
||||||
|
"oe", // œ 339
|
||||||
|
"R", // Ŕ 340
|
||||||
|
"r", // ŕ 341
|
||||||
|
"R", // Ŗ 342
|
||||||
|
"r", // ŗ 343
|
||||||
|
"R", // Ř 344
|
||||||
|
"r", // ř 345
|
||||||
|
"S", // Ś 346
|
||||||
|
"s", // ś 347
|
||||||
|
"S", // Ŝ 348
|
||||||
|
"s", // ŝ 349
|
||||||
|
"S", // Ş 350
|
||||||
|
"s", // ş 351
|
||||||
|
"S", // Š 352
|
||||||
|
"s", // š 353
|
||||||
|
"T", // Ţ 354
|
||||||
|
"t", // ţ 355
|
||||||
|
"T", // Ť 356
|
||||||
|
"t", // ť 357
|
||||||
|
"T", // Ŧ 358
|
||||||
|
"t", // ŧ 359
|
||||||
|
"U", // Ũ 360
|
||||||
|
"u", // ũ 361
|
||||||
|
"U", // Ū 362
|
||||||
|
"u", // ū 363
|
||||||
|
"U", // Ŭ 364
|
||||||
|
"u", // ŭ 365
|
||||||
|
"U", // Ů 366
|
||||||
|
"u", // ů 367
|
||||||
|
"U", // Ű 368
|
||||||
|
"u", // ű 369
|
||||||
|
"U", // Ų 370
|
||||||
|
"u", // ų 371
|
||||||
|
"W", // Ŵ 372
|
||||||
|
"w", // ŵ 373
|
||||||
|
"Y", // Ŷ 374
|
||||||
|
"y", // ŷ 375
|
||||||
|
"Y", // Ÿ 376
|
||||||
|
"Z", // Ź 377
|
||||||
|
"z", // ź 378
|
||||||
|
"Z", // Ż 379
|
||||||
|
"z", // ż 380
|
||||||
|
"Z", // Ž 381
|
||||||
|
"z", // ž 382
|
||||||
|
"s", // ſ 383
|
||||||
|
"ƀ", // ƀ 384
|
||||||
|
"B", // Ɓ 385
|
||||||
|
"Ƃ", // Ƃ 386
|
||||||
|
"ƃ", // ƃ 387
|
||||||
|
"Ƅ", // Ƅ 388
|
||||||
|
"ƅ", // ƅ 389
|
||||||
|
"O", // Ɔ 390
|
||||||
|
"Ƈ", // Ƈ 391
|
||||||
|
"ƈ", // ƈ 392
|
||||||
|
"Ɖ", // Ɖ 393
|
||||||
|
"D", // Ɗ 394
|
||||||
|
"Ƌ", // Ƌ 395
|
||||||
|
"ƌ", // ƌ 396
|
||||||
|
"ƍ", // ƍ 397
|
||||||
|
"Ǝ", // Ǝ 398
|
||||||
|
"E", // Ə 399
|
||||||
|
"E", // Ɛ 400
|
||||||
|
"F", // Ƒ 401
|
||||||
|
"f", // ƒ 402
|
||||||
|
"Ɠ", // Ɠ 403
|
||||||
|
"Ɣ", // Ɣ 404
|
||||||
|
"ƕ", // ƕ 405
|
||||||
|
"Ɩ", // Ɩ 406
|
||||||
|
"Ɨ", // Ɨ 407
|
||||||
|
"K", // Ƙ 408
|
||||||
|
"k", // ƙ 409
|
||||||
|
"l", // ƚ 410
|
||||||
|
"l", // ƛ 411
|
||||||
|
"Ɯ", // Ɯ 412
|
||||||
|
"N", // Ɲ 413
|
||||||
|
"ƞ", // ƞ 414
|
||||||
|
"O", // Ɵ 415
|
||||||
|
"O", // Ơ 416
|
||||||
|
"o", // ơ 417
|
||||||
|
"Ƣ", // Ƣ 418
|
||||||
|
"ƣ", // ƣ 419
|
||||||
|
"Ƥ", // Ƥ 420
|
||||||
|
"ƥ", // ƥ 421
|
||||||
|
"Ʀ", // Ʀ 422
|
||||||
|
"Ƨ", // Ƨ 423
|
||||||
|
"ƨ", // ƨ 424
|
||||||
|
"Ʃ", // Ʃ 425
|
||||||
|
"ƪ", // ƪ 426
|
||||||
|
"ƫ", // ƫ 427
|
||||||
|
"Ƭ", // Ƭ 428
|
||||||
|
"ƭ", // ƭ 429
|
||||||
|
"Ʈ", // Ʈ 430
|
||||||
|
"U", // Ư 431
|
||||||
|
"u", // ư 432
|
||||||
|
"Ʊ", // Ʊ 433
|
||||||
|
"Ʋ", // Ʋ 434
|
||||||
|
"Y", // Ƴ 435
|
||||||
|
"y", // ƴ 436
|
||||||
|
"Z", // Ƶ 437
|
||||||
|
"z", // ƶ 438
|
||||||
|
"Ʒ", // Ʒ 439
|
||||||
|
"Ƹ", // Ƹ 440
|
||||||
|
"ƹ", // ƹ 441
|
||||||
|
"ƺ", // ƺ 442
|
||||||
|
"ƻ", // ƻ 443
|
||||||
|
"Ƽ", // Ƽ 444
|
||||||
|
"ƽ", // ƽ 445
|
||||||
|
"ƾ", // ƾ 446
|
||||||
|
"ƿ", // ƿ 447
|
||||||
|
"ǀ", // ǀ 448
|
||||||
|
"ǁ", // ǁ 449
|
||||||
|
"ǂ", // ǂ 450
|
||||||
|
"ǃ", // ǃ 451
|
||||||
|
"DZ", // DŽ 452
|
||||||
|
"Dz", // Dž 453
|
||||||
|
"dz", // dž 454
|
||||||
|
"LJ", // LJ 455
|
||||||
|
"Lj", // Lj 456
|
||||||
|
"lj", // lj 457
|
||||||
|
"NJ", // NJ 458
|
||||||
|
"Nj", // Nj 459
|
||||||
|
"nj", // nj 460
|
||||||
|
"A", // Ǎ 461
|
||||||
|
"a", // ǎ 462
|
||||||
|
"I", // Ǐ 463
|
||||||
|
"i", // ǐ 464
|
||||||
|
"O", // Ǒ 465
|
||||||
|
"o", // ǒ 466
|
||||||
|
"U", // Ǔ 467
|
||||||
|
"u", // ǔ 468
|
||||||
|
"U", // Ǖ 469
|
||||||
|
"u", // ǖ 470
|
||||||
|
"U", // Ǘ 471
|
||||||
|
"u", // ǘ 472
|
||||||
|
"U", // Ǚ 473
|
||||||
|
"u", // ǚ 474
|
||||||
|
"U", // Ǜ 475
|
||||||
|
"u", // ǜ 476
|
||||||
|
"ǝ", // ǝ 477
|
||||||
|
"Ǟ", // Ǟ 478
|
||||||
|
"ǟ", // ǟ 479
|
||||||
|
"Ǡ", // Ǡ 480
|
||||||
|
"ǡ", // ǡ 481
|
||||||
|
"Ǣ", // Ǣ 482
|
||||||
|
"ǣ", // ǣ 483
|
||||||
|
"Ǥ", // Ǥ 484
|
||||||
|
"ǥ", // ǥ 485
|
||||||
|
"G", // Ǧ 486
|
||||||
|
"g", // ǧ 487
|
||||||
|
"Ǩ", // Ǩ 488
|
||||||
|
"ǩ", // ǩ 489
|
||||||
|
"O", // Ǫ 490
|
||||||
|
"o", // ǫ 491
|
||||||
|
"Ǭ", // Ǭ 492
|
||||||
|
"ǭ", // ǭ 493
|
||||||
|
"Ǯ", // Ǯ 494
|
||||||
|
"e", // ǯ 495
|
||||||
|
"j", // ǰ 496
|
||||||
|
"DZ", // DZ 497
|
||||||
|
"Dz", // Dz 498
|
||||||
|
"dz", // dz 499
|
||||||
|
"G", // Ǵ 500
|
||||||
|
"g", // ǵ 501
|
||||||
|
"Ƕ", // Ƕ 502
|
||||||
|
"Ƿ", // Ƿ 503
|
||||||
|
"N", // Ǹ 504
|
||||||
|
"n", // ǹ 505
|
||||||
|
"A", // Ǻ 506
|
||||||
|
"a", // ǻ 507
|
||||||
|
"AE", // Ǽ 508
|
||||||
|
"ae", // ǽ 509
|
||||||
|
"O", // Ǿ 510
|
||||||
|
"o", // ǿ 511
|
||||||
|
"Ȁ", // Ȁ 512
|
||||||
|
"ȁ", // ȁ 513
|
||||||
|
"Ȃ", // Ȃ 514
|
||||||
|
"ȃ", // ȃ 515
|
||||||
|
"Ȅ", // Ȅ 516
|
||||||
|
"ȅ", // ȅ 517
|
||||||
|
"Ȇ", // Ȇ 518
|
||||||
|
"ȇ", // ȇ 519
|
||||||
|
"Ȉ", // Ȉ 520
|
||||||
|
"ȉ", // ȉ 521
|
||||||
|
"Ȋ", // Ȋ 522
|
||||||
|
"ȋ", // ȋ 523
|
||||||
|
"Ȍ", // Ȍ 524
|
||||||
|
"ȍ", // ȍ 525
|
||||||
|
"Ȏ", // Ȏ 526
|
||||||
|
"ȏ", // ȏ 527
|
||||||
|
"Ȑ", // Ȑ 528
|
||||||
|
"ȑ", // ȑ 529
|
||||||
|
"Ȓ", // Ȓ 530
|
||||||
|
"ȓ", // ȓ 531
|
||||||
|
"Ȕ", // Ȕ 532
|
||||||
|
"ȕ", // ȕ 533
|
||||||
|
"Ȗ", // Ȗ 534
|
||||||
|
"ȗ", // ȗ 535
|
||||||
|
"S", // Ș 536
|
||||||
|
"s", // ș 537
|
||||||
|
"T", // Ț 538
|
||||||
|
"t", // ț 539
|
||||||
|
"Ȝ", // Ȝ 540
|
||||||
|
"ȝ", // ȝ 541
|
||||||
|
"Ȟ", // Ȟ 542
|
||||||
|
"ȟ", // ȟ 543
|
||||||
|
"Ƞ", // Ƞ 544
|
||||||
|
"ȡ", // ȡ 545
|
||||||
|
"Ȣ", // Ȣ 546
|
||||||
|
"ȣ", // ȣ 547
|
||||||
|
"Ȥ", // Ȥ 548
|
||||||
|
"ȥ", // ȥ 549
|
||||||
|
"Ȧ", // Ȧ 550
|
||||||
|
"ȧ", // ȧ 551
|
||||||
|
"Ȩ", // Ȩ 552
|
||||||
|
"ȩ", // ȩ 553
|
||||||
|
"Ȫ", // Ȫ 554
|
||||||
|
"ȫ", // ȫ 555
|
||||||
|
"Ȭ", // Ȭ 556
|
||||||
|
"ȭ", // ȭ 557
|
||||||
|
"Ȯ", // Ȯ 558
|
||||||
|
"ȯ", // ȯ 559
|
||||||
|
"Ȱ", // Ȱ 560
|
||||||
|
"ȱ", // ȱ 561
|
||||||
|
"Y", // Ȳ 562
|
||||||
|
"y", // ȳ 563
|
||||||
|
"ȴ", // ȴ 564
|
||||||
|
"ȵ", // ȵ 565
|
||||||
|
"ȶ", // ȶ 566
|
||||||
|
"j", // ȷ 567
|
||||||
|
"ȸ", // ȸ 568
|
||||||
|
"ȹ", // ȹ 569
|
||||||
|
"Ⱥ", // Ⱥ 570
|
||||||
|
"Ȼ", // Ȼ 571
|
||||||
|
"ȼ", // ȼ 572
|
||||||
|
"L", // Ƚ 573
|
||||||
|
"Ⱦ", // Ⱦ 574
|
||||||
|
"ȿ", // ȿ 575
|
||||||
|
"ɀ", // ɀ 576
|
||||||
|
"Ɂ", // Ɂ 577
|
||||||
|
"ɂ", // ɂ 578
|
||||||
|
"Ƀ", // Ƀ 579
|
||||||
|
"Ʉ", // Ʉ 580
|
||||||
|
"Ʌ", // Ʌ 581
|
||||||
|
"Ɇ", // Ɇ 582
|
||||||
|
"ɇ", // ɇ 583
|
||||||
|
"Ɉ", // Ɉ 584
|
||||||
|
"ɉ", // ɉ 585
|
||||||
|
"Ɋ", // Ɋ 586
|
||||||
|
"ɋ", // ɋ 587
|
||||||
|
"Ɍ", // Ɍ 588
|
||||||
|
"ɍ", // ɍ 589
|
||||||
|
"Ɏ", // Ɏ 590
|
||||||
|
"ɏ", // ɏ 591
|
||||||
|
"a", // ɐ 592
|
||||||
|
"a", // ɑ 593
|
||||||
|
"a", // ɒ 594
|
||||||
|
"b", // ɓ 595
|
||||||
|
"o", // ɔ 596
|
||||||
|
"c", // ɕ 597
|
||||||
|
"d", // ɖ 598
|
||||||
|
"d", // ɗ 599
|
||||||
|
"e", // ɘ 600
|
||||||
|
"e", // ə 601
|
||||||
|
"e", // ɚ 602
|
||||||
|
"o", // ɛ 603
|
||||||
|
"e", // ɜ 604
|
||||||
|
"e", // ɝ 605
|
||||||
|
"e", // ɞ 606
|
||||||
|
"j", // ɟ 607
|
||||||
|
"g", // ɠ 608
|
||||||
|
"g", // ɡ 609
|
||||||
|
"ɢ", // ɢ 610
|
||||||
|
"g", // ɣ 611
|
||||||
|
"ɤ", // ɤ 612
|
||||||
|
"h", // ɥ 613
|
||||||
|
"h", // ɦ 614
|
||||||
|
"h", // ɧ 615
|
||||||
|
"i", // ɨ 616
|
||||||
|
"i", // ɩ 617
|
||||||
|
"ɪ", // ɪ 618
|
||||||
|
"l", // ɫ 619
|
||||||
|
"l", // ɬ 620
|
||||||
|
"l", // ɭ 621
|
||||||
|
"le", // ɮ 622
|
||||||
|
"m", // ɯ 623
|
||||||
|
"m", // ɰ 624
|
||||||
|
"m", // ɱ 625
|
||||||
|
"n", // ɲ 626
|
||||||
|
"n", // ɳ 627
|
||||||
|
"ɴ", // ɴ 628
|
||||||
|
"o", // ɵ 629
|
||||||
|
"OE", // ɶ 630
|
||||||
|
"ɷ", // ɷ 631
|
||||||
|
"p", // ɸ 632
|
||||||
|
"r", // ɹ 633
|
||||||
|
"r", // ɺ 634
|
||||||
|
"r", // ɻ 635
|
||||||
|
"r", // ɼ 636
|
||||||
|
"r", // ɽ 637
|
||||||
|
"r", // ɾ 638
|
||||||
|
"r", // ɿ 639
|
||||||
|
"ʀ", // ʀ 640
|
||||||
|
"R", // ʁ 641
|
||||||
|
"s", // ʂ 642
|
||||||
|
"s", // ʃ 643
|
||||||
|
"j", // ʄ 644
|
||||||
|
"s", // ʅ 645
|
||||||
|
"s", // ʆ 646
|
||||||
|
"t", // ʇ 647
|
||||||
|
"t", // ʈ 648
|
||||||
|
"u", // ʉ 649
|
||||||
|
"u", // ʊ 650
|
||||||
|
"v", // ʋ 651
|
||||||
|
"v", // ʌ 652
|
||||||
|
"w", // ʍ 653
|
||||||
|
"y", // ʎ 654
|
||||||
|
"ʏ", // ʏ 655
|
||||||
|
"z", // ʐ 656
|
||||||
|
"z", // ʑ 657
|
||||||
|
"e", // ʒ 658
|
||||||
|
"e", // ʓ 659
|
||||||
|
"ʔ", // ʔ 660
|
||||||
|
"ʕ", // ʕ 661
|
||||||
|
"ʖ", // ʖ 662
|
||||||
|
"C", // ʗ 663
|
||||||
|
"o", // ʘ 664
|
||||||
|
"ʙ", // ʙ 665
|
||||||
|
"e", // ʚ 666
|
||||||
|
"G", // ʛ 667
|
||||||
|
"ʜ", // ʜ 668
|
||||||
|
"j", // ʝ 669
|
||||||
|
"k", // ʞ 670
|
||||||
|
"ʟ", // ʟ 671
|
||||||
|
"q", // ʠ 672
|
||||||
|
"ʡ", // ʡ 673
|
||||||
|
"ʢ", // ʢ 674
|
||||||
|
"dz", // ʣ 675
|
||||||
|
"de", // ʤ 676
|
||||||
|
"dz", // ʥ 677
|
||||||
|
"ts", // ʦ 678
|
||||||
|
"ts", // ʧ 679
|
||||||
|
"tc", // ʨ 680
|
||||||
|
"fn", // ʩ 681
|
||||||
|
"ls", // ʪ 682
|
||||||
|
"lz", // ʫ 683
|
||||||
|
"W", // ʬ 684
|
||||||
|
"ʭ", // ʭ 685
|
||||||
|
"h", // ʮ 686
|
||||||
|
"h", // ʯ 687
|
||||||
|
];
|
||||||
|
|
||||||
|
const TABLE_1: [&str; 246] = [
|
||||||
|
"B", // Ḅ 7684
|
||||||
|
"b", // ḅ 7685
|
||||||
|
"Ḇ", // Ḇ 7686
|
||||||
|
"ḇ", // ḇ 7687
|
||||||
|
"Ḉ", // Ḉ 7688
|
||||||
|
"ḉ", // ḉ 7689
|
||||||
|
"Ḋ", // Ḋ 7690
|
||||||
|
"ḋ", // ḋ 7691
|
||||||
|
"D", // Ḍ 7692
|
||||||
|
"d", // ḍ 7693
|
||||||
|
"D", // Ḏ 7694
|
||||||
|
"d", // ḏ 7695
|
||||||
|
"Ḑ", // Ḑ 7696
|
||||||
|
"ḑ", // ḑ 7697
|
||||||
|
"D", // Ḓ 7698
|
||||||
|
"d", // ḓ 7699
|
||||||
|
"Ḕ", // Ḕ 7700
|
||||||
|
"ḕ", // ḕ 7701
|
||||||
|
"Ḗ", // Ḗ 7702
|
||||||
|
"ḗ", // ḗ 7703
|
||||||
|
"Ḙ", // Ḙ 7704
|
||||||
|
"ḙ", // ḙ 7705
|
||||||
|
"Ḛ", // Ḛ 7706
|
||||||
|
"ḛ", // ḛ 7707
|
||||||
|
"Ḝ", // Ḝ 7708
|
||||||
|
"ḝ", // ḝ 7709
|
||||||
|
"Ḟ", // Ḟ 7710
|
||||||
|
"ḟ", // ḟ 7711
|
||||||
|
"G", // Ḡ 7712
|
||||||
|
"g", // ḡ 7713
|
||||||
|
"Ḣ", // Ḣ 7714
|
||||||
|
"ḣ", // ḣ 7715
|
||||||
|
"H", // Ḥ 7716
|
||||||
|
"h", // ḥ 7717
|
||||||
|
"Ḧ", // Ḧ 7718
|
||||||
|
"ḧ", // ḧ 7719
|
||||||
|
"Ḩ", // Ḩ 7720
|
||||||
|
"ḩ", // ḩ 7721
|
||||||
|
"H", // Ḫ 7722
|
||||||
|
"h", // ḫ 7723
|
||||||
|
"Ḭ", // Ḭ 7724
|
||||||
|
"ḭ", // ḭ 7725
|
||||||
|
"Ḯ", // Ḯ 7726
|
||||||
|
"ḯ", // ḯ 7727
|
||||||
|
"Ḱ", // Ḱ 7728
|
||||||
|
"ḱ", // ḱ 7729
|
||||||
|
"K", // Ḳ 7730
|
||||||
|
"k", // ḳ 7731
|
||||||
|
"K", // Ḵ 7732
|
||||||
|
"k", // ḵ 7733
|
||||||
|
"L", // Ḷ 7734
|
||||||
|
"l", // ḷ 7735
|
||||||
|
"L", // Ḹ 7736
|
||||||
|
"l", // ḹ 7737
|
||||||
|
"L", // Ḻ 7738
|
||||||
|
"l", // ḻ 7739
|
||||||
|
"L", // Ḽ 7740
|
||||||
|
"l", // ḽ 7741
|
||||||
|
"M", // Ḿ 7742
|
||||||
|
"m", // ḿ 7743
|
||||||
|
"M", // Ṁ 7744
|
||||||
|
"m", // ṁ 7745
|
||||||
|
"M", // Ṃ 7746
|
||||||
|
"m", // ṃ 7747
|
||||||
|
"N", // Ṅ 7748
|
||||||
|
"n", // ṅ 7749
|
||||||
|
"N", // Ṇ 7750
|
||||||
|
"n", // ṇ 7751
|
||||||
|
"N", // Ṉ 7752
|
||||||
|
"n", // ṉ 7753
|
||||||
|
"N", // Ṋ 7754
|
||||||
|
"n", // ṋ 7755
|
||||||
|
"Ṍ", // Ṍ 7756
|
||||||
|
"ṍ", // ṍ 7757
|
||||||
|
"Ṏ", // Ṏ 7758
|
||||||
|
"ṏ", // ṏ 7759
|
||||||
|
"Ṑ", // Ṑ 7760
|
||||||
|
"ṑ", // ṑ 7761
|
||||||
|
"Ṓ", // Ṓ 7762
|
||||||
|
"ṓ", // ṓ 7763
|
||||||
|
"Ṕ", // Ṕ 7764
|
||||||
|
"ṕ", // ṕ 7765
|
||||||
|
"Ṗ", // Ṗ 7766
|
||||||
|
"ṗ", // ṗ 7767
|
||||||
|
"R", // Ṙ 7768
|
||||||
|
"r", // ṙ 7769
|
||||||
|
"R", // Ṛ 7770
|
||||||
|
"r", // ṛ 7771
|
||||||
|
"R", // Ṝ 7772
|
||||||
|
"r", // ṝ 7773
|
||||||
|
"R", // Ṟ 7774
|
||||||
|
"r", // ṟ 7775
|
||||||
|
"S", // Ṡ 7776
|
||||||
|
"s", // ṡ 7777
|
||||||
|
"S", // Ṣ 7778
|
||||||
|
"s", // ṣ 7779
|
||||||
|
"Ṥ", // Ṥ 7780
|
||||||
|
"ṥ", // ṥ 7781
|
||||||
|
"Ṧ", // Ṧ 7782
|
||||||
|
"ṧ", // ṧ 7783
|
||||||
|
"Ṩ", // Ṩ 7784
|
||||||
|
"ṩ", // ṩ 7785
|
||||||
|
"Ṫ", // Ṫ 7786
|
||||||
|
"ṫ", // ṫ 7787
|
||||||
|
"T", // Ṭ 7788
|
||||||
|
"t", // ṭ 7789
|
||||||
|
"T", // Ṯ 7790
|
||||||
|
"t", // ṯ 7791
|
||||||
|
"T", // Ṱ 7792
|
||||||
|
"t", // ṱ 7793
|
||||||
|
"Ṳ", // Ṳ 7794
|
||||||
|
"ṳ", // ṳ 7795
|
||||||
|
"Ṵ", // Ṵ 7796
|
||||||
|
"ṵ", // ṵ 7797
|
||||||
|
"Ṷ", // Ṷ 7798
|
||||||
|
"ṷ", // ṷ 7799
|
||||||
|
"Ṹ", // Ṹ 7800
|
||||||
|
"ṹ", // ṹ 7801
|
||||||
|
"Ṻ", // Ṻ 7802
|
||||||
|
"ṻ", // ṻ 7803
|
||||||
|
"Ṽ", // Ṽ 7804
|
||||||
|
"ṽ", // ṽ 7805
|
||||||
|
"Ṿ", // Ṿ 7806
|
||||||
|
"ṿ", // ṿ 7807
|
||||||
|
"W", // Ẁ 7808
|
||||||
|
"w", // ẁ 7809
|
||||||
|
"W", // Ẃ 7810
|
||||||
|
"w", // ẃ 7811
|
||||||
|
"W", // Ẅ 7812
|
||||||
|
"w", // ẅ 7813
|
||||||
|
"Ẇ", // Ẇ 7814
|
||||||
|
"ẇ", // ẇ 7815
|
||||||
|
"Ẉ", // Ẉ 7816
|
||||||
|
"ẉ", // ẉ 7817
|
||||||
|
"Ẋ", // Ẋ 7818
|
||||||
|
"ẋ", // ẋ 7819
|
||||||
|
"Ẍ", // Ẍ 7820
|
||||||
|
"ẍ", // ẍ 7821
|
||||||
|
"Y", // Ẏ 7822
|
||||||
|
"y", // ẏ 7823
|
||||||
|
"Ẑ", // Ẑ 7824
|
||||||
|
"ẑ", // ẑ 7825
|
||||||
|
"Z", // Ẓ 7826
|
||||||
|
"z", // ẓ 7827
|
||||||
|
"Z", // Ẕ 7828
|
||||||
|
"z", // ẕ 7829
|
||||||
|
"h", // ẖ 7830
|
||||||
|
"t", // ẗ 7831
|
||||||
|
"ẘ", // ẘ 7832
|
||||||
|
"ẙ", // ẙ 7833
|
||||||
|
"ẚ", // ẚ 7834
|
||||||
|
"ẛ", // ẛ 7835
|
||||||
|
"ẜ", // ẜ 7836
|
||||||
|
"ẝ", // ẝ 7837
|
||||||
|
"SS", // ẞ 7838
|
||||||
|
"ẟ", // ẟ 7839
|
||||||
|
"A", // Ạ 7840
|
||||||
|
"a", // ạ 7841
|
||||||
|
"A", // Ả 7842
|
||||||
|
"a", // ả 7843
|
||||||
|
"A", // Ấ 7844
|
||||||
|
"a", // ấ 7845
|
||||||
|
"A", // Ầ 7846
|
||||||
|
"a", // ầ 7847
|
||||||
|
"A", // Ẩ 7848
|
||||||
|
"a", // ẩ 7849
|
||||||
|
"A", // Ẫ 7850
|
||||||
|
"a", // ẫ 7851
|
||||||
|
"A", // Ậ 7852
|
||||||
|
"a", // ậ 7853
|
||||||
|
"A", // Ắ 7854
|
||||||
|
"a", // ắ 7855
|
||||||
|
"A", // Ằ 7856
|
||||||
|
"a", // ằ 7857
|
||||||
|
"A", // Ẳ 7858
|
||||||
|
"a", // ẳ 7859
|
||||||
|
"A", // Ẵ 7860
|
||||||
|
"a", // ẵ 7861
|
||||||
|
"A", // Ặ 7862
|
||||||
|
"a", // ặ 7863
|
||||||
|
"E", // Ẹ 7864
|
||||||
|
"e", // ẹ 7865
|
||||||
|
"E", // Ẻ 7866
|
||||||
|
"e", // ẻ 7867
|
||||||
|
"E", // Ẽ 7868
|
||||||
|
"e", // ẽ 7869
|
||||||
|
"E", // Ế 7870
|
||||||
|
"e", // ế 7871
|
||||||
|
"E", // Ề 7872
|
||||||
|
"e", // ề 7873
|
||||||
|
"E", // Ể 7874
|
||||||
|
"e", // ể 7875
|
||||||
|
"E", // Ễ 7876
|
||||||
|
"e", // ễ 7877
|
||||||
|
"E", // Ệ 7878
|
||||||
|
"e", // ệ 7879
|
||||||
|
"I", // Ỉ 7880
|
||||||
|
"i", // ỉ 7881
|
||||||
|
"I", // Ị 7882
|
||||||
|
"i", // ị 7883
|
||||||
|
"O", // Ọ 7884
|
||||||
|
"o", // ọ 7885
|
||||||
|
"O", // Ỏ 7886
|
||||||
|
"o", // ỏ 7887
|
||||||
|
"O", // Ố 7888
|
||||||
|
"o", // ố 7889
|
||||||
|
"O", // Ồ 7890
|
||||||
|
"o", // ồ 7891
|
||||||
|
"O", // Ổ 7892
|
||||||
|
"o", // ổ 7893
|
||||||
|
"O", // Ỗ 7894
|
||||||
|
"o", // ỗ 7895
|
||||||
|
"O", // Ộ 7896
|
||||||
|
"o", // ộ 7897
|
||||||
|
"O", // Ớ 7898
|
||||||
|
"o", // ớ 7899
|
||||||
|
"O", // Ờ 7900
|
||||||
|
"o", // ờ 7901
|
||||||
|
"O", // Ở 7902
|
||||||
|
"o", // ở 7903
|
||||||
|
"O", // Ỡ 7904
|
||||||
|
"o", // ỡ 7905
|
||||||
|
"O", // Ợ 7906
|
||||||
|
"o", // ợ 7907
|
||||||
|
"U", // Ụ 7908
|
||||||
|
"u", // ụ 7909
|
||||||
|
"U", // Ủ 7910
|
||||||
|
"u", // ủ 7911
|
||||||
|
"U", // Ứ 7912
|
||||||
|
"u", // ứ 7913
|
||||||
|
"U", // Ừ 7914
|
||||||
|
"u", // ừ 7915
|
||||||
|
"U", // Ử 7916
|
||||||
|
"u", // ử 7917
|
||||||
|
"U", // Ữ 7918
|
||||||
|
"u", // ữ 7919
|
||||||
|
"U", // Ự 7920
|
||||||
|
"u", // ự 7921
|
||||||
|
"Y", // Ỳ 7922
|
||||||
|
"y", // ỳ 7923
|
||||||
|
"Y", // Ỵ 7924
|
||||||
|
"y", // ỵ 7925
|
||||||
|
"Y", // Ỷ 7926
|
||||||
|
"y", // ỷ 7927
|
||||||
|
"Y", // Ỹ 7928
|
||||||
|
"y", // ỹ 7929
|
||||||
|
];
|
||||||
|
|
||||||
|
const TABLE_2: [&str; 2] = [
|
||||||
|
"fi", // fi 64257
|
||||||
|
"fl", // fl 64258
|
||||||
|
];
|
||||||
|
|
||||||
|
#[inline(always)]
|
||||||
|
pub(super) fn lookup(c: char) -> Option<&'static str> {
|
||||||
|
match c as u16 {
|
||||||
|
192..=687 => unsafe { Some(TABLE_0.get_unchecked((c as u16 - 192) as usize)) },
|
||||||
|
7684..=7929 => unsafe { Some(TABLE_1.get_unchecked((c as u16 - 7684) as usize)) },
|
||||||
|
64257..=64258 => unsafe { Some(TABLE_2.get_unchecked((c as u16 - 64257) as usize)) },
|
||||||
|
_ => None,
|
||||||
|
}
|
||||||
|
}
|
||||||
69
yazi-shared/src/transliterate/traits.rs
Normal file
69
yazi-shared/src/transliterate/traits.rs
Normal file
|
|
@ -0,0 +1,69 @@
|
||||||
|
use core::str;
|
||||||
|
use std::borrow::Cow;
|
||||||
|
|
||||||
|
pub trait Transliterator {
|
||||||
|
fn transliterate(&self) -> Cow<str>;
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Transliterator for &[u8] {
|
||||||
|
fn transliterate(&self) -> Cow<str> {
|
||||||
|
// Fast path to skip over ASCII chars at the beginning of the string
|
||||||
|
let ascii_len = self.iter().take_while(|&&c| c < 0x7f).count();
|
||||||
|
if ascii_len >= self.len() {
|
||||||
|
return Cow::Borrowed(unsafe { str::from_utf8_unchecked(self) });
|
||||||
|
}
|
||||||
|
|
||||||
|
let (ascii, rest) = self.split_at(ascii_len);
|
||||||
|
let ascii = unsafe { str::from_utf8_unchecked(ascii) };
|
||||||
|
|
||||||
|
// Reserve a bit more space to avoid reallocations on longer transliterations
|
||||||
|
// but instead of `+ 16` uses `| 15` to stay in the smallest allocation bucket
|
||||||
|
// for short strings
|
||||||
|
let mut out = String::new();
|
||||||
|
out.try_reserve_exact(self.len() | 15).unwrap_or_else(|_| panic!());
|
||||||
|
out.push_str(ascii);
|
||||||
|
|
||||||
|
for c in String::from_utf8_lossy(rest).chars() {
|
||||||
|
if let Some(s) = super::lookup(c) {
|
||||||
|
out.push_str(s);
|
||||||
|
} else {
|
||||||
|
out.push(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Cow::Owned(out)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_transliterate() {
|
||||||
|
assert_eq!("Æcœ".as_bytes().transliterate(), "AEcoe");
|
||||||
|
assert_eq!(
|
||||||
|
"ěřůøĉĝĥĵŝŭèùÿėįųāēīūļķņģőűëïąćęłńśźżõșțčďĺľňŕšťýžéíñóúüåäöçîşûğăâđêôơưáàãảạ"
|
||||||
|
.as_bytes()
|
||||||
|
.transliterate(),
|
||||||
|
"eruocghjsueuyeiuaeiulkngoueiacelnszzostcdllnrstyzeinouuaaocisugaadeoouaaaaa",
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
"áạàảãăắặằẳẵâấậầẩẫéẹèẻẽêếệềểễiíịìỉĩoóọòỏõôốộồổỗơớợờởỡúụùủũưứựừửữyýỵỳỷỹđ"
|
||||||
|
.as_bytes()
|
||||||
|
.transliterate(),
|
||||||
|
"aaaaaaaaaaaaaaaaaeeeeeeeeeeeiiiiiioooooooooooooooooouuuuuuuuuuuyyyyyyd",
|
||||||
|
);
|
||||||
|
assert_ne!(
|
||||||
|
"ěřůøĉĝĥĵŝŭèùÿėįųāēīūļķņģőűëïąćęłńśźżõșțčďĺľňŕšťýžéíñóúüåäöçîşûğăâđêôơưáàãảạfifl"
|
||||||
|
.as_bytes()
|
||||||
|
.transliterate(),
|
||||||
|
"ěřůøĉĝĥĵŝŭèùÿėįųāēīūļķņģőűëïąćęłńśźżõșțčďĺľňŕšťýžéíñóúüåäöçîşûğăâđêôơưáàãảạfifl"
|
||||||
|
);
|
||||||
|
assert_eq!(
|
||||||
|
"THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOGthequickbrownfoxjumpedoverthelazydog"
|
||||||
|
.as_bytes()
|
||||||
|
.transliterate(),
|
||||||
|
"THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOGthequickbrownfoxjumpedoverthelazydog"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue