Skip to content
This repository was archived by the owner on Oct 8, 2025. It is now read-only.

Commit 15b73fe

Browse files
committed
Rust/rusty: Add a couple of convenience functions
This adds the following convenience functions for adding HTTP response headers, Content-Type & Content-length uwr_http_add_header_content_type(ctx: *mut luw_ctx_t, ctype: &str); uwr_http_add_header_content_len(ctx: *mut luw_ctx_t); These are perhaps the two most common headers so it makes sense to reduce the effort to adding them. E.g before uwr_http_add_header(&ctx, "Content-Type", "text/plain"); uwr_http_add_header( ctx, "Content-Length", &format!("{}", uwr_get_response_data_size(ctx)), ); after uwr_http_add_header_content_type(ctx, "text/plain"); uwr_http_add_header_content_len(ctx); Signed-off-by: Andrew Clayton <a.clayton@nginx.com>
1 parent bf968c9 commit 15b73fe

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

API-Rust.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ and there isn't a real need to create wrappers specifically for them.
7878
* [uwr_http_send_response](#uwr_http_send_response)
7979
* [uwr_http_init_headers](#uwr_http_init_headers)
8080
* [uwr_http_add_header](#uwr_http_add_header)
81+
* [uwr_http_add_header_content_type](#uwr_http_add_header_content_type)
82+
* [uwr_http_add_header_content_len](#uwr_http_add_header_content_len)
8183
* [uwr_http_send_headers](#uwr_http_send_headers)
8284
* [uwr_http_response_end](#uwr_http_response_end)
8385
* [uwr_mem_get_init_size](#uwr_mem_get_init_size)
@@ -859,6 +861,37 @@ uwr_http_add_header(
859861
);
860862
```
861863
864+
### uwr_http_add_header_content_type
865+
866+
```Rust
867+
pub fn uwr_http_add_header_content_type(ctx: *mut luw_ctx_t, ctype: &str);
868+
```
869+
870+
A convenience function for setting the 'Content-Type' response header.
871+
E.g the above example that adds the _Content-Type_ header could be
872+
written as
873+
874+
```Rust
875+
uwr_http_add_header_content_type(ctx, "text/plain");
876+
```
877+
878+
### uwr_http_add_header_content_len
879+
880+
```Rust
881+
pub fn uwr_http_add_header_content_len(ctx: *mut luw_ctx_t);
882+
```
883+
884+
A convenience function for setting the 'Content-Length' response header.
885+
E.g the above example that adds the _Content-Length_ header could be
886+
written as
887+
888+
```Rust
889+
uwr_http_add_header_content_len(ctx);
890+
```
891+
892+
This function uses [uwr_get_response_data_size](#uwr_get_response_data_size)
893+
internally to get the size of the response data.
894+
862895
### uwr_http_send_headers
863896
864897
```Rust

src/rust/unit-wasm-sys/rusty.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,18 @@ pub fn uwr_http_add_header(ctx: *mut luw_ctx_t, name: &str, value: &str) {
197197
}
198198
}
199199

200+
pub fn uwr_http_add_header_content_type(ctx: *mut luw_ctx_t, ctype: &str) {
201+
uwr_http_add_header(ctx, "Content-Type", ctype);
202+
}
203+
204+
pub fn uwr_http_add_header_content_len(ctx: *mut luw_ctx_t) {
205+
uwr_http_add_header(
206+
ctx,
207+
"Content-Length",
208+
&format!("{}", uwr_get_response_data_size(ctx)),
209+
);
210+
}
211+
200212
pub fn uwr_http_send_headers(ctx: *const luw_ctx_t) {
201213
unsafe {
202214
luw_http_send_headers(ctx);

0 commit comments

Comments
 (0)