Crate encoded

Source
Expand description

Macros converting character encodings at compile time which reduce runtime processing costs and binary size.

Encoding definitions depend on the encoding_rs crate.

§Examples

Convert a string literal into encoded bytes array:

const BYTES: &[u8] = encoded::shift_jis!("漢字");
assert_eq!(BYTES, b"\x8a\xbf\x8e\x9a");

Can also be used with std::io::Write:

use std::io::{Cursor, Write};

let mut buff = Cursor::new(Vec::new());
buff.write_all(encoded::shift_jis!("漢字"));
assert_eq!(buff.get_ref(), b"\x8a\xbf\x8e\x9a");

§Compile Errors

Argument must be a literal:

const KANJI: &str = "漢字";
const BYTES: &[u8] = encoded::shift_jis!(KANJI);
//                                       ^^^^^

Any unmappable characters result a compile error:

const BYTES: &[u8] = encoded::shift_jis!("鷗外");
//                                       ^^^^^^

Macros§

big5
Examples
euc_jp
Examples
euc_kr
Examples
gb18030
Examples
gbk
Examples
iso_8859_2
Examples
iso_8859_4
Examples
iso_8859_5
Examples
iso_8859_6
Examples
iso_8859_7
Examples
iso_8859_8
Examples
iso_8859_10
Examples
iso_8859_13
Examples
iso_8859_15
Examples
iso_8859_16
Examples
koi8_r
Examples
koi8_u
Examples
shift_jis
Examples
windows_874
Examples
windows_1251
Examples
windows_1252
Examples
windows_1253
Examples
windows_1254
Examples
windows_1255
Examples
windows_1256
Examples
windows_1257
Examples