docs.rs failed to build szs-0.0.3
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build:
szs-0.3.7
szs
szs is a WIP crate for compressing and decompressing SZS formats used in the Nintendo GameCube and Wii games. The library provides C bindings, making it useful in both Rust and C/C++ based projects.
Warning: The library is not currently in a fully functional state. Use at your own risk. 0.1.0 will start the release series.
Algorithms
- Booyer-moore-horspool (1:1 matching source files--relevant for decompilation projects), Brute force, CTGP (1:1 matching), Fast
Rust
The following snippet demonstrates how to compress a file as a SZS format using Rust:
// Sample source bytes to be encoded.
let src_data: = "Hello, World!".as_bytes.to_vec;
// Calculate the upper bound for encoding.
let max_len = encoded_upper_bound;
// Allocate a buffer based on the calculated upper bound.
let mut dst_data: = vec!;
// Boyer-Moore-hoorspool variant
let algo_number: u32 = 0;
match encode_algo_fast
Example (C++ Bindings)
// Boyer-Moore-hoorspool variant
szs::Algo algorithm = szs::Algo::Nintendo;
auto encoded = ;
if
;
std::vector<u8> szs_data = *encoded;
;
Example (C Bindings)
// Calculate the upper bound for encoding.
u32 max_size = ;
// Allocate a buffer based on the calculated upper bound.
void* encoded_buf = ;
if
// Boyer-Moore-hoorspool variant
u32 algorithm = RII_SZS_ENCODE_ALGO_NINTENDO;
u32 actual_len = 0;
const char* ec = ;
if
;
// Optionally: shrink the dst_data to the actual size.
encoded_buf = ;
License
This library is published under the MIT license.