Crate cdragon_rst
source ·Expand description
Support of Riot translation files (RST)
Use Rst to open an RST file (.stringtable
) and access its content.
An RST file maps hashed translation keys to translation strings. When an instance is created, the file header is parsed, data is read, but strings are actually read and parsed (as UTF-8) only on access.
Example
let rst = Rst::open("main_en_us.stringtable").expect("failed to open or read data");
// Get an entry by its key string
assert_eq!(rst.get("item_1001_name"), Some("Boots".into()));
// Or by its key hash
assert_eq!(rst.get(0x3376eae1da), Some("Boots".into()));
// Entries can be iterated
// Use a mapper to filter on (known) keys
let hmapper = RstHashMapper::from_path("hashes.rst.txt").expect("failed to load hashes");
for (hash, value) in rst.iter() {
if let Some(key) = hmapper.get(hash) {
println!("{key} = {value}");
}
}
Older RST versions
Hash bit size
Hashes from RST files used more bits. Number of bits used by an RST file can be retrieved with Rst::hash_bits(). The default RstHashMapper is suitable for the latest RST version.
Encrypted entries
Older RST versions could have encrypted entries whose data is not valid UTF-8. Use Rst::get_raw() to access both encrypted and non-encrypted entries.
Structs
- Riot translation file
Enums
- Error in an RST file
- A raw RST entry value, possibly encrypted
Traits
Type Aliases
- Mapper for RST hashes, use current default hash size