BOTW resource size table (RSTB) library in Rust

crates.io api license

A quick and easy library for manipulating the resource size table (RSTB) from The Legend of Zelda: Breath of the Wild in Rust. Can edit an RSTB directly or convert to and from a JSON representation. Basic usage to manipulate an RSTB file:

``rust use rstb::{ResourceSizeTable, Endian}; let buf: Vec<u8> = std::fs::read("test/ResourceSizeTable.product.rsizetable")?; // Read RSTB from data, can automatically decompress if yaz0 compressed // (requiresyaz0feature) let mut table: ResourceSizeTable = ResourceSizeTable::from_binary(buf)?; // Set the size for a resource table.set("Map/MainField/A-1/A-1_Dynamic.mubin", 777); // Check the size assert_eq!( table.get("Map/MainField/A-1/A-1_Dynamic.mubin").unwrap(), 777 ); // Dump to JSON, ifjson` feature enabled

[cfg(feature = "json")]

{ let jsontable = table.totext(); // From JSON back to RSTB let newtable = ResourceSizeTable::fromtext(&json_table)?; } // Write new binary copy, and we'll yaz0 compress it

[cfg(feature = "yaz0")]

let outbuf: Vec = table.tocompressed_binary(Endian::Big); ```