refactor: impl From<TextScriptEncoding> for &Encoding
This commit is contained in:
parent
07174e3d1c
commit
ef1b819881
|
@ -65,43 +65,7 @@ pub fn put_string(buffer: &mut Vec<u8>, out: &mut Vec<u8>, encoding: TextScriptE
|
|||
|
||||
let mut tmp_buf = Vec::new();
|
||||
|
||||
let encoding = match encoding {
|
||||
TextScriptEncoding::ShiftJIS => encoding_rs::SHIFT_JIS,
|
||||
TextScriptEncoding::UTF8 => encoding_rs::UTF_8,
|
||||
TextScriptEncoding::UTF16BE => encoding_rs::UTF_16BE,
|
||||
TextScriptEncoding::UTF16LE => encoding_rs::UTF_16LE,
|
||||
TextScriptEncoding::ISO_2022_JP => encoding_rs::ISO_2022_JP,
|
||||
TextScriptEncoding::ISO_8859_2 => encoding_rs::ISO_8859_2,
|
||||
TextScriptEncoding::ISO_8859_3 => encoding_rs::ISO_8859_3,
|
||||
TextScriptEncoding::ISO_8859_4 => encoding_rs::ISO_8859_4,
|
||||
TextScriptEncoding::ISO_8859_5 => encoding_rs::ISO_8859_5,
|
||||
TextScriptEncoding::ISO_8859_6 => encoding_rs::ISO_8859_6,
|
||||
TextScriptEncoding::ISO_8859_7 => encoding_rs::ISO_8859_7,
|
||||
TextScriptEncoding::ISO_8859_8 => encoding_rs::ISO_8859_8,
|
||||
TextScriptEncoding::ISO_8859_8_I => encoding_rs::ISO_8859_8_I,
|
||||
TextScriptEncoding::ISO_8859_10 => encoding_rs::ISO_8859_10,
|
||||
TextScriptEncoding::ISO_8859_13 => encoding_rs::ISO_8859_13,
|
||||
TextScriptEncoding::ISO_8859_14 => encoding_rs::ISO_8859_14,
|
||||
TextScriptEncoding::ISO_8859_15 => encoding_rs::ISO_8859_15,
|
||||
TextScriptEncoding::ISO_8859_16 => encoding_rs::ISO_8859_16,
|
||||
TextScriptEncoding::KOI8_R => encoding_rs::KOI8_R,
|
||||
TextScriptEncoding::KOI8_U => encoding_rs::KOI8_U,
|
||||
TextScriptEncoding::MACINTOSH => encoding_rs::MACINTOSH,
|
||||
TextScriptEncoding::EUC_JP => encoding_rs::EUC_JP,
|
||||
TextScriptEncoding::EUC_KR => encoding_rs::EUC_KR,
|
||||
TextScriptEncoding::GB18030 => encoding_rs::GB18030,
|
||||
TextScriptEncoding::GBK => encoding_rs::GBK,
|
||||
TextScriptEncoding::BIG5 => encoding_rs::BIG5,
|
||||
TextScriptEncoding::WINDOWS_1250 => encoding_rs::WINDOWS_1250,
|
||||
TextScriptEncoding::WINDOWS_1251 => encoding_rs::WINDOWS_1251,
|
||||
TextScriptEncoding::WINDOWS_1252 => encoding_rs::WINDOWS_1252,
|
||||
TextScriptEncoding::WINDOWS_1253 => encoding_rs::WINDOWS_1253,
|
||||
TextScriptEncoding::WINDOWS_1254 => encoding_rs::WINDOWS_1254,
|
||||
TextScriptEncoding::WINDOWS_1255 => encoding_rs::WINDOWS_1255,
|
||||
TextScriptEncoding::WINDOWS_1256 => encoding_rs::WINDOWS_1256,
|
||||
TextScriptEncoding::WINDOWS_1257 => encoding_rs::WINDOWS_1257,
|
||||
TextScriptEncoding::WINDOWS_1258 => encoding_rs::WINDOWS_1258,
|
||||
};
|
||||
let encoding: &encoding_rs::Encoding = encoding.into();
|
||||
|
||||
let decoded_text = encoding.decode_without_bom_handling(&buffer).0;
|
||||
for chr in decoded_text.chars() {
|
||||
|
|
|
@ -134,6 +134,48 @@ impl From<&str> for TextScriptEncoding {
|
|||
}
|
||||
}
|
||||
|
||||
impl From<TextScriptEncoding> for &'static encoding_rs::Encoding {
|
||||
fn from(value: TextScriptEncoding) -> Self {
|
||||
match value {
|
||||
TextScriptEncoding::ShiftJIS => encoding_rs::SHIFT_JIS,
|
||||
TextScriptEncoding::UTF8 => encoding_rs::UTF_8,
|
||||
TextScriptEncoding::UTF16BE => encoding_rs::UTF_16BE,
|
||||
TextScriptEncoding::UTF16LE => encoding_rs::UTF_16LE,
|
||||
TextScriptEncoding::ISO_2022_JP => encoding_rs::ISO_2022_JP,
|
||||
TextScriptEncoding::ISO_8859_2 => encoding_rs::ISO_8859_2,
|
||||
TextScriptEncoding::ISO_8859_3 => encoding_rs::ISO_8859_3,
|
||||
TextScriptEncoding::ISO_8859_4 => encoding_rs::ISO_8859_4,
|
||||
TextScriptEncoding::ISO_8859_5 => encoding_rs::ISO_8859_5,
|
||||
TextScriptEncoding::ISO_8859_6 => encoding_rs::ISO_8859_6,
|
||||
TextScriptEncoding::ISO_8859_7 => encoding_rs::ISO_8859_7,
|
||||
TextScriptEncoding::ISO_8859_8 => encoding_rs::ISO_8859_8,
|
||||
TextScriptEncoding::ISO_8859_8_I => encoding_rs::ISO_8859_8_I,
|
||||
TextScriptEncoding::ISO_8859_10 => encoding_rs::ISO_8859_10,
|
||||
TextScriptEncoding::ISO_8859_13 => encoding_rs::ISO_8859_13,
|
||||
TextScriptEncoding::ISO_8859_14 => encoding_rs::ISO_8859_14,
|
||||
TextScriptEncoding::ISO_8859_15 => encoding_rs::ISO_8859_15,
|
||||
TextScriptEncoding::ISO_8859_16 => encoding_rs::ISO_8859_16,
|
||||
TextScriptEncoding::KOI8_R => encoding_rs::KOI8_R,
|
||||
TextScriptEncoding::KOI8_U => encoding_rs::KOI8_U,
|
||||
TextScriptEncoding::MACINTOSH => encoding_rs::MACINTOSH,
|
||||
TextScriptEncoding::EUC_JP => encoding_rs::EUC_JP,
|
||||
TextScriptEncoding::EUC_KR => encoding_rs::EUC_KR,
|
||||
TextScriptEncoding::GB18030 => encoding_rs::GB18030,
|
||||
TextScriptEncoding::GBK => encoding_rs::GBK,
|
||||
TextScriptEncoding::BIG5 => encoding_rs::BIG5,
|
||||
TextScriptEncoding::WINDOWS_1250 => encoding_rs::WINDOWS_1250,
|
||||
TextScriptEncoding::WINDOWS_1251 => encoding_rs::WINDOWS_1251,
|
||||
TextScriptEncoding::WINDOWS_1252 => encoding_rs::WINDOWS_1252,
|
||||
TextScriptEncoding::WINDOWS_1253 => encoding_rs::WINDOWS_1253,
|
||||
TextScriptEncoding::WINDOWS_1254 => encoding_rs::WINDOWS_1254,
|
||||
TextScriptEncoding::WINDOWS_1255 => encoding_rs::WINDOWS_1255,
|
||||
TextScriptEncoding::WINDOWS_1256 => encoding_rs::WINDOWS_1256,
|
||||
TextScriptEncoding::WINDOWS_1257 => encoding_rs::WINDOWS_1257,
|
||||
TextScriptEncoding::WINDOWS_1258 => encoding_rs::WINDOWS_1258,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl TextScriptEncoding {
|
||||
pub fn invalid_encoding(encoding: TextScriptEncoding, state: &SharedGameState) -> bool {
|
||||
if state.loc.encoding.as_ref().is_some_and(|s| TextScriptEncoding::from(s.as_str()) == encoding) {
|
||||
|
|
Loading…
Reference in New Issue