nx_fetch_default_decode_gate_t253.nx source
↩ module page · 16 lines · 994 B
1// Exercise the shared default decoded API; caller supplies admitted output budget.
2// Only status, framing and byte counts are emitted. No session headers or body.
3import "nx_fetch_status_live_gate_t252.nx"
4func main(argc:i64,argv:*i64)->i64{
5 if argc!=3{return 2};let cap:i64=hsl_size(argv[2] as *u8);if cap<=0{return 2}
6 let store:i64=hf_store_load();if store<=0{return 3}
7 let out:*u8=sys_mmap_try(cap);if (out as i64)==0{return 4}
8 let n:i64=hf_fetch(store,argv[1] as *u8,0,0,out,cap)
9 fa_puts("default_decoded_result=");fa_putn(n);fa_puts(" caller_budget=");fa_putn(cap);fa_puts("\n")
10 if n<=0{return 5}
11 let he:i64=hf_body_off(out,n);if he<0{return 6}
12 let st:i64=nx_http_resp_status_code(out,n);let enc:i64=hfd_hdr_enc(out,he)
13 fa_puts("status=");fa_putn(st);fa_puts(" header_bytes=");fa_putn(he);fa_puts(" decoded_body_bytes=");fa_putn(n-he);fa_puts(" content_encoding_enum=");fa_putn(enc);fa_puts("\n")
14 sys_munmap_direct(out,cap)
15 if st!=200{return 7};if enc!=0{return 8};return 0
16}