2 releases
0.6.1 | Jun 2, 2024 |
---|---|
0.6.0 | Dec 4, 2023 |
#405 in Build Utils
Used in 3 crates
(2 directly)
31KB
93 lines
codify-rs
Helps in automatic code generation at compile-time, for initializing structs and enums containing data, which is to be available at runtime.
The practical use case of this, is to store resources/data in the binary in the most efficient form, so it will be ready at runtime, without having to include the data/files in their original, serialized, potentially innefficient form into the binary. This also means, the data does not have to be parsed at runtime/application-startup.
Usage
-
Add this library to your normal and build dependencies in cargo:
[dependencies] codify = { version = "0.6", package = "codify_hoijui" } [build-dependencies] codify = { version = "0.6", package = "codify_hoijui" }
-
in your
build.rs
, load some data from resource files into structs/enums, using serde -
in your
build.rs
, callCodify::init_code()
on that data, creating init code. -
write that code into a
$OUT_DIR/my_data_x_gen.rs
file -
Create a proxy source file under
src/
- for examplesrc/my_data_x_gen.rs
- which does nothing more then include the generated file:include!(concat!(env!("OUT_DIR"), "/my_data_x_gen.rs"));
-
load/use
$OUT_DIR/my_data_x.rs
file at compile-time
Example
For an example usage, see the build.rs file of osh-dir-std-rs project.