summaryrefslogtreecommitdiffhomepage
path: root/src/rust/unit-wasm-sys/build.rs (follow)
AgeCommit message (Collapse)AuthorFilesLines
2023-09-05rust: Change how bindgen creates enumsAndrew Clayton1-0/+3
Previously bindgen was picking the 'constified_enum'. E.g it would turn the luw_srb_flags_t enum typedef enum { LUW_SRB_NONE = 0x00, LUW_SRB_APPEND = 0x01, LUW_SRB_ALLOC = 0x02, LUW_SRB_FULL_SIZE = 0x04, LUW_SRB_FLAGS_ALL = (LUW_SRB_NONE|LUW_SRB_APPEND|LUW_SRB_ALLOC| LUW_SRB_FULL_SIZE) } luw_srb_flags_t; into pub const luw_srb_flags_t_LUW_SRB_NONE: luw_srb_flags_t = 0; pub const luw_srb_flags_t_LUW_SRB_APPEND: luw_srb_flags_t = 1; pub const luw_srb_flags_t_LUW_SRB_ALLOC: luw_srb_flags_t = 2; pub const luw_srb_flags_t_LUW_SRB_FULL_SIZE: luw_srb_flags_t = 4; pub const luw_srb_flags_t_LUW_SRB_FLAGS_ALL: luw_srb_flags_t = 7; But then this requires some further changes to make the names nicer without the type prefixed. This will only be exasperated when adding an enum containing the HTTP status codes... So instead, tell bindgen to use the 'rustified_enum' method which produces this pub enum luw_srb_flags_t { LUW_SRB_NONE = 0, LUW_SRB_APPEND = 1, LUW_SRB_ALLOC = 2, LUW_SRB_FULL_SIZE = 4, LUW_SRB_FLAGS_ALL = 7, } which in theory requires no extra changes (it doesn't with the http status codes enum), however in this specific case, because these are actually bitflags we still need to cast them to u32 so they can be OR'd. Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-08-28Rust/unit-wasm-sys: Re-generate the bindings on changes to unit-wasm.hAndrew Clayton1-1/+1
Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-08-26Rust/unit-wasm-sys: Don't require the wasi-sysrootAndrew Clayton1-3/+0
When I added the luw_http_hdr_get_value() function I needed to include strings.h, unfortunately I added it to unit-wasm.h instead of libunit-wasm.c This then meant that we needed to point bindgen/clang, for generating the bindings, to the wasi-sysroot for the strings.h file. I guess this is a system dependant include or something and when we use the wasm32-wasi target in clang it uses a paired down include search path list, none of which have strings.h This then had the knock on effect of requiring to inform cargo build of the wasi-sysroot path. Now that we put strings.h in the right place, we don't need the wasi-sysroot when building the rust stuff. Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-08-26Rust/unit-wasm-sys: Remove reference to wrapper.h from build.rsAndrew Clayton1-1/+0
There is no wrapper.h in the repository. Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-08-26Rust/unit-wasm-sys: Run build.rs through rustfmtAndrew Clayton1-3/+4
This in preparation for some upcoming changes. Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
2023-08-21Initial commitv0.1.0Andrew Clayton1-0/+52
libunit-wasm and example C and Rust WebAssembly modules for NGINX Unit. Co-developed-by: Timo Stark <t.stark@nginx.com> Co-developed-by: Liam Crilly <liam@nginx.com> Signed-off-by: Andrew Clayton <a.clayton@nginx.com>