wtx 0.43.0

A collection of different transport implementations and related tools focused primarily on web technologies.
Documentation
use crate::database::client::mysql::collation::Collation;

create_enum! {
  #[expect(non_camel_case_types, reason = "mysql format")]
  #[derive(Copy, Clone, Debug)]
  pub(crate) enum Charset<u8> {
    armscii8 = (1),
    ascii = (2),
    big5 = (3),
    binary = (4),
    cp1250 = (5),
    cp1251 = (6),
    cp1256 = (7),
    cp1257 = (8),
    cp850 = (9),
    cp852 = (10),
    cp866 = (11),
    cp932 = (12),
    dec8 = (13),
    eucjpms = (14),
    euckr = (15),
    gb18030 = (16),
    gb2312 = (17),
    gbk = (18),
    geostd8 = (19),
    greek = (20),
    hebrew = (21),
    hp8 = (22),
    keybcs2 = (23),
    koi8r = (24),
    koi8u = (25),
    latin1 = (26),
    latin2 = (27),
    latin5 = (28),
    latin7 = (29),
    macce = (30),
    macroman = (31),
    sjis = (32),
    swe7 = (33),
    tis620 = (34),
    ucs2 = (35),
    ujis = (36),
    utf16 = (37),
    utf16le = (38),
    utf32 = (39),
    utf8 = (40),
    utf8mb4 = (41),
  }
}

impl Charset {
  pub(crate) const fn default_collation(&self) -> Collation {
    match self {
      Self::armscii8 => Collation::armscii8_general_ci,
      Self::ascii => Collation::ascii_general_ci,
      Self::big5 => Collation::big5_chinese_ci,
      Self::binary => Collation::binary,
      Self::cp1250 => Collation::cp1250_general_ci,
      Self::cp1251 => Collation::cp1251_general_ci,
      Self::cp1256 => Collation::cp1256_general_ci,
      Self::cp1257 => Collation::cp1257_general_ci,
      Self::cp850 => Collation::cp850_general_ci,
      Self::cp852 => Collation::cp852_general_ci,
      Self::cp866 => Collation::cp866_general_ci,
      Self::cp932 => Collation::cp932_japanese_ci,
      Self::dec8 => Collation::dec8_swedish_ci,
      Self::eucjpms => Collation::eucjpms_japanese_ci,
      Self::euckr => Collation::euckr_korean_ci,
      Self::gb18030 => Collation::gb18030_chinese_ci,
      Self::gb2312 => Collation::gb2312_chinese_ci,
      Self::gbk => Collation::gbk_chinese_ci,
      Self::geostd8 => Collation::geostd8_general_ci,
      Self::greek => Collation::greek_general_ci,
      Self::hebrew => Collation::hebrew_general_ci,
      Self::hp8 => Collation::hp8_english_ci,
      Self::keybcs2 => Collation::keybcs2_general_ci,
      Self::koi8r => Collation::koi8r_general_ci,
      Self::koi8u => Collation::koi8u_general_ci,
      Self::latin1 => Collation::latin1_swedish_ci,
      Self::latin2 => Collation::latin2_general_ci,
      Self::latin5 => Collation::latin5_turkish_ci,
      Self::latin7 => Collation::latin7_general_ci,
      Self::macce => Collation::macce_general_ci,
      Self::macroman => Collation::macroman_general_ci,
      Self::sjis => Collation::sjis_japanese_ci,
      Self::swe7 => Collation::swe7_swedish_ci,
      Self::tis620 => Collation::tis620_thai_ci,
      Self::ucs2 => Collation::ucs2_general_ci,
      Self::ujis => Collation::ujis_japanese_ci,
      Self::utf16 => Collation::utf16_general_ci,
      Self::utf16le => Collation::utf16le_general_ci,
      Self::utf32 => Collation::utf32_general_ci,
      Self::utf8 => Collation::utf8_unicode_ci,
      Self::utf8mb4 => Collation::utf8mb4_unicode_ci,
    }
  }
}