module Tools: sig
.. end
Various functions/types prevalent in the library.
val ensure : bool -> string -> unit
val error : string -> 'a
val should_not_happen : 'a -> 'b
val todo : string -> 'a
val err : string -> 'a option
val bytelength : Bitstring.bitstring -> int
val takebytes : int -> Bitstring.bitstring -> Bitstring.bitstring
val extendbytes : int -> Bitstring.bitstring -> Bitstring.bitstring
val bitstring_is_empty : Bitstring.bitstring -> bool
val dropbytes : int -> Bitstring.bitstring -> Bitstring.bitstring
val fixedbits : int -> Bitstring.bitstring -> Bitstring.bitstring
val bitstring_fuzz : float -> Bitstring.bitstring -> Bitstring.bitstring
val bitstring_add : int -> Bitstring.bitstring -> Bitstring.bitstring
val hexstring_of_bitstring : Bitstring.bitstring -> string
val hexstring_of_bitstring_abbrev : Bitstring.bitstring -> string
val printable : string -> string
val print_bitstring : Batteries.Format.formatter -> string * int * int -> unit
val int_of_bitstring : Bitstring.bitstring -> int
val bitstring_copy : Bitstring.bitstring -> Bitstring.bitstring
val all_bits : int -> Bitstring.bitstring Batteries.Enum.t
val abbrev : ?len:int -> string -> string
val string_find_first : ?from:int -> (char -> bool) -> string -> int
val int_of_hexchar : char -> int
val int_of_hexstring : string -> int option
val may_default : 'a option -> (unit -> 'a) -> 'a
val remove_last_if : ('a -> bool) -> 'a list -> 'a list
val none_if_not_found : ('a -> 'b) -> 'a -> 'b option
val none_if_exception : ('a -> 'b) -> 'a -> 'b option
val assert_ok : ('a, 'b) Batteries.Result.t -> unit
val str_all_matches : string -> string list
module HashedBits: sig
.. end
module BitHash: Batteries.Hashtbl.Make
(
HashedBits
)
val hash_find_or_insert : ('a, 'b) Batteries.Hashtbl.t -> 'a -> (unit -> 'b) -> 'b
val hash_merge : ('a, 'b) Batteries.Hashtbl.t -> ('a, 'b) Batteries.Hashtbl.t -> unit
val file_content : string -> string
module OrdArray: sig
.. end
An OrdArray is a container for an ordered set of bounded size.
val randi : int -> int
val rand32 : unit -> int32
val randb : unit -> bool
val randstr : ?charset:string -> int -> string
val randbs : int -> Bitstring.bitstring
val rand_hostname : unit -> string
val do_sum : Bitstring.bitstring -> int
val do_compute_checksum : bool Batteries.ref
val sum : Bitstring.bitstring -> int
module type PRIVATE_TYPE = sig
.. end
module MakePrivate: functor (
Outer
:
sig
type
t
val to_string : t -> string
val is_valid : t -> bool
val repl_tag : string
end
) ->
sig
.. end
module Payload: sig
.. end
type
dev = {
|
write : Bitstring.bitstring -> unit ; |
|
set_read : (Bitstring.bitstring -> unit) -> unit ; |
}
A device is something to which you can send packet and register a
receiving function
val null_dev : dev
For those cases when you want to build a trx
from a single dev
val (<-->) : dev -> dev -> unit
type
trx = {
}
A transmiter is a kind of pipe with an inside and an outside device, is
thus oriented (from inside to outside, inside being left operand for following
functions), that transforms the writen payload before emitting it.
val tx : trx -> Bitstring.bitstring -> unit
val rx : trx -> Bitstring.bitstring -> unit
val inverse_trx : trx -> trx
val null_trx : trx
val (<-=) : (Bitstring.bitstring -> unit) -> trx -> trx
f <-= trx
sets f as the receive function of this trx
.
Note: trx
is returned so that you can write such things as:
f <-= a <==> b
or f1 <-= a =-> f2
val (=->) : trx -> (Bitstring.bitstring -> unit) -> unit
trx =-> f
sets f
as the emiting function of this trx
.
val (==>) : trx -> trx -> trx
a ==> b
connects a
to b
such that b
transmits what a
emits.
val (<==>) : trx -> trx -> unit
a <==> b
connects a
to b
such that b
receives what a
emits
and a
receives what b
emits.
val pipe : trx -> trx -> trx
pipe trx1 trx2
connects trx1 and trx2 so that trx1 output is sent through trx2,
and returns a trx with trx1 as the inside and trx2 as the outside.
module type PDU = sig
.. end