Skip to main content

Crate encoded

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