package gapi-ocaml
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=b84b680528a5e050014103a8e7a60a5d43efd5fefc3f838310bd46769775ab48
md5=8ee26acf1f6c6f5e24c7b57fa070a0a2
doc/gapi-ocaml.netstring-local/Netstring_tstring/index.html
Module Netstring_tstring
Source
Support module for tagged strings
type _ tstring_kind =
| String_kind : string tstring_kind
| Bytes_kind : 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 -> 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 -> Bytes.t;
subpoly : 'u. 'u tstring_kind -> 't -> int -> int -> 'u;
blit_to_bytes : 't -> int -> 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
type tstring_ops_box =
| Tstring_ops_box : 't tstring_kind * 't tstring_ops -> tstring_ops_box
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
Implementation of the operations for string
Implementation of the operations for string
Implementation of the operations for bytes
Implementation of the operations for bytes
Implementation of the operations for memory
Create a Tstring_ops_box
A polymorphic function for strings
with_tstring f ts
: Calls f.with_fun
with the right implementation of the tstring_ops
argument
Get the length of a tagged string
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