package dream-httpaf
Internal: shared http/af stack for Dream (server) and Hyper (client)
Install
Dune Dependency
Authors
Maintainers
Sources
dream-1.0.0-alpha6.tar.gz
sha256=8d3b6344c0e175aca628b3d5bb8ee58265e8c1074fc2d40d63f136fef83daf90
doc/src/dream-httpaf.dream-websocketaf/serialize.ml.html
Source file serialize.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
let serialize_headers ?mask faraday ~is_fin ~opcode ~payload_length = let opcode = Websocket.Opcode.to_int opcode in let is_fin = if is_fin then 1 lsl 7 else 0 in let is_mask = match mask with | None -> 0 | Some _ -> 1 lsl 7 in Faraday.write_uint8 faraday (is_fin lor opcode); if payload_length <= 125 then Faraday.write_uint8 faraday (is_mask lor payload_length) else if payload_length <= 0xffff then begin Faraday.write_uint8 faraday (is_mask lor 126); Faraday.BE.write_uint16 faraday payload_length; end else begin Faraday.write_uint8 faraday (is_mask lor 127); Faraday.BE.write_uint64 faraday (Int64.of_int payload_length); end; begin match mask with | None -> () | Some mask -> Faraday.BE.write_uint32 faraday mask end ;; let serialize_control ?mask faraday ~opcode = let opcode = (opcode :> Websocket.Opcode.t) in serialize_headers faraday ?mask ~is_fin:true ~opcode ~payload_length:0 let schedule_serialize ?mask faraday ~is_fin ~opcode ~payload ~src_off ~off ~len = serialize_headers faraday ?mask ~is_fin ~opcode ~payload_length:len; begin match mask with | None -> () | Some mask -> Websocket.Frame.apply_mask mask payload ~src_off ~off ~len end; Faraday.schedule_bigstring faraday payload ~off ~len; ;; let serialize_bytes ?mask faraday ~is_fin ~opcode ~payload ~src_off ~off ~len = serialize_headers faraday ?mask ~is_fin ~opcode ~payload_length:len; begin match mask with | None -> () | Some mask -> Websocket.Frame.apply_mask_bytes mask payload ~src_off ~off ~len end; Faraday.write_bytes faraday payload ~off ~len; ;;
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>