Skip to content

Commit b0f2e6d

Browse files
authored
Merge pull request #24 from LeagueToolkit/feat/rework-modpkg-format
feat: rework modpkg format
2 parents df28013 + b31e955 commit b0f2e6d

File tree

12 files changed

+879
-271
lines changed

12 files changed

+879
-271
lines changed

crates/io-ext/src/writer.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,17 @@ pub trait WriterExt: Write {
2121
Ok(())
2222
}
2323

24+
/// Writes a string with a length prefix (writes sizeof(str.len()) + str.len() bytes)
25+
fn write_len_prefixed_string_better<T: ByteOrder>(
26+
&mut self,
27+
str: impl AsRef<str>,
28+
) -> io::Result<()> {
29+
let str = str.as_ref();
30+
self.write_u16::<T>(str.len() as _)?;
31+
self.write_all(str.as_bytes())?;
32+
Ok(())
33+
}
34+
2435
/// Writes a string with a null terminator (writes sizeof(str) + 1 bytes)
2536
fn write_terminated_string<S: AsRef<str>>(&mut self, str: S) -> io::Result<()> {
2637
self.write_all(str.as_ref().as_bytes())?;

crates/league-modpkg/Cargo.toml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,17 @@ edition = "2021"
66
[dependencies]
77
thiserror = "1.0.60"
88
byteorder = "1.5.0"
9-
109
io-ext = { path = "../io-ext" }
10+
serde = { version = "1.0", features = ["derive"] }
11+
rmp-serde = "1.3.0"
12+
binrw = "0.14.1"
13+
itertools = "0.14.0"
14+
proptest = "1.6.0"
15+
zstd = "0.13"
16+
17+
[dependencies.xxhash-rust]
18+
version = "0.8.15"
19+
features = ["xxh3", "xxh64"]
20+
21+
[dev-dependencies]
22+
proptest-derive = "0.5.1"

0 commit comments

Comments
 (0)