Netstring_tstring
Support module for tagged strings
type _ tstring_kind =
| String_kind : string tstring_kind
| Bytes_kind : Stdlib.Bytes.t tstring_kind
| Memory_kind : Netsys_types.memory tstring_kind
GADT for encoding the string type (string/bytes/bigarray)
type 't tstring_ops = {
kind : 't tstring_kind option;
length : 't -> int;
get : 't -> int -> char;
unsafe_get : 't -> int -> char;
unsafe_get3 : 't -> int -> int;
get 3 chars packed into one int (first char shifted by 16 bits, second char shifted by 8 bits, third char unshifted)
*)copy : 't -> 't;
string : 't -> string;
if possible this function does not make a copy
*)bytes : 't -> Stdlib.Bytes.t;
if possible this function does not make a copy
*)sub : 't -> int -> int -> 't;
substring : 't -> int -> int -> string;
subbytes : 't -> int -> int -> Stdlib.Bytes.t;
subpoly : 'u. 'u tstring_kind -> 't -> int -> int -> 'u;
blit_to_bytes : 't -> int -> Stdlib.Bytes.t -> int -> int -> unit;
blit_to_memory : 't -> int -> Netsys_types.memory -> int -> int -> unit;
index_from : 't -> int -> char -> int;
index_from3 : 't -> int -> int -> char -> char -> char -> int;
finds any of three chars. The second int is the search radius
*)rindex_from : 't -> int -> char -> int;
rindex_from3 : 't -> int -> int -> char -> char -> char -> int;
finds any of three chars. The second int is the search radius
*)}
Operations to call on strings
GADT for hiding the type parameter
GADT for hiding the type parameter
GADT for hiding the type parameter. Warning: This GADT does not permit you to recover the kind of string
val string_ops : string tstring_ops
Implementation of the operations for string
val bytes_ops : Stdlib.Bytes.t tstring_ops
Implementation of the operations for string
Implementation of the operations for bytes
val memory_ops : Netsys_types.memory tstring_ops
Implementation of the operations for bytes
Implementation of the operations for memory
val ops_of_tstring : Netsys_types.tstring -> tstring_ops_box
Create a Tstring_ops_box
A polymorphic function for strings
val with_tstring : 'a with_fun -> Netsys_types.tstring -> 'a
with_tstring f ts
: Calls f.with_fun
with the right implementation of the tstring_ops
argument
val length_tstring : Netsys_types.tstring -> int
Get the length of a tagged string
val tstring_of_tbuffer : Netsys_types.tbuffer -> Netsys_types.tstring
Get the tagged string of a tagged buffer
val polymorph_string_transformation :
(string -> string) ->
's tstring_ops ->
't tstring_kind ->
's ->
't
polymorph_string_transformation f ops kind s
: Converts s
to a string, runs f
on this string, and converts the result to the type demanded by kind