1 unstable release
0.1.0 | Jun 25, 2024 |
---|
#2637 in Parser implementations
81KB
2K
SLoC
clauser
clauser is a library for working with configuration, script, and data files from the Clausewitz engine used by Paradox Interactive for their grand strategy games.
It currently implements a Tokenizer, a low-level Reader, a serde-based Deserializer, and an copying Value deserializer for situations where serde won't work. For more information, read the documentation.
Examples
Using serde:
use serde::Deserialize;
#[derive(Deserialize)]
struct TestObject {
a: i32,
b: String,
c: Date
}
let obj = clauser::de::from_str::<TestObject>(
"a = 1 b = test c = 1940.1.1"
);
assert!(obj.a == 1);
assert!(obj.b == "test");
assert!(obj.c == Date::new(1940, 1, 1, 0));
lib.rs
:
clauser
clauser is a library for working with configuration, script, and data files from the Clausewitz engine used by Paradox Interactive for their grand strategy games.
It contains a number of components:
- Deserializer is a [serde] deserializer that can deserialize Clausewitz files into Rust data structures.
- Value allows deserializing a Clausewitz file into a tree of values, for situations where the schema of the data isn't known beforehand.
- Tokenizer turns a Clausewitz file into a series of tokens.
- Reader is a wrapper around Tokenizer that enables low-level parsing operations on a Clausewitz source file.
Dependencies
~2.1–3MB
~52K SLoC