package amqp-client
Amqp client base library
Install
Dune Dependency
Authors
Maintainers
Sources
2.3.0.tar.gz
md5=9db83accd0dfa9231c3f2ca0de9c8d9f
sha512=921c3f4d0d655dc5caa5c89fe8c4309a6e22d91167676062e0e73f3007b0b5de20e7b461aefdddca6dbdf716d57d90eaefb7e974ae218cce0f0a20fb461c965d
doc/src/amqp-client.lib/io.ml.html
Source file io.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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
(** Internal *) module Input = struct type t = { buf: String.t; mutable offset: int } let init ?(offset=0) buf = { buf; offset } let read f n t = let r = f t.buf t.offset in t.offset <- t.offset + n; r let string t len = let s = String.sub t.buf t.offset len in t.offset <- t.offset + len; s let octet = read String.get_uint8 1 let short = read String.get_uint16_be 2 let long t = read String.get_int32_be 4 t |> Int32.to_int let longlong t = read String.get_int64_be 8 t |> Int64.to_int let float = read (fun s l -> String.get_int32_be s l |> Int32.float_of_bits) 2 let double = read (fun s l -> String.get_int64_be s l |> Int64.float_of_bits) 8 let length t = String.length t.buf - t.offset let has_data t = length t > 0 let offset t = t.offset let copy t ~dst_pos ~len (dst:Bytes.t) = Bytes.blit_string t.buf t.offset dst dst_pos len; t.offset <- t.offset + len end module Output = struct type t = { mutable buf: Bytes.t; mutable offset: int; apply: bool } let create len = { buf = Bytes.create len; offset = 0; apply = true } (* The sizer dont actually do anything, but record space needed *) let sizer () = { buf = Bytes.create 0; offset = 0; apply = false } let write f n t v = if t.apply then f t.buf t.offset v; t.offset <- t.offset + n let get t : Bytes.t = t.buf let string t ?(src_pos=0) ?len src = let len = match len with | Some l -> l | None -> String.length src in if (t.apply) then Bytes.blit_string src src_pos t.buf t.offset len; t.offset <- t.offset + len let octet = write Bytes.set_int8 1 let short = write Bytes.set_int16_be 2 let short_ref t = let offset = t.offset in t.offset <- t.offset + 2; fun v -> if (t.apply) then Bytes.set_int16_be t.buf offset v let long = write (fun t pos v -> Bytes.set_int32_be t pos (Int32.of_int v)) 4 let longlong = write (fun t pos v -> Bytes.set_int64_be t pos (Int64.of_int v)) 8 let float = write (fun t pos v -> Bytes.set_int32_be t pos (Int32.bits_of_float v)) 4 let double = write (fun t pos v -> Bytes.set_int64_be t pos (Int64.bits_of_float v)) 8 let size_ref t = let offset = t.offset in t.offset <- offset + 4; fun () -> if t.apply then Bytes.set_int32_be t.buf offset (Int32.of_int (t.offset - (offset + 4))) let size t = t.offset end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>