Ocamlnet 3 Reference Manual : Netulex.ULB

`sig
type unicode_lexbuf = private {
mutable ulb_encoding : Netconversion.encoding;
mutable ulb_encoding_start : int;
mutable ulb_rawbuf : string;
mutable ulb_rawbuf_len : int;
mutable ulb_rawbuf_end : int;
mutable ulb_rawbuf_const : bool;
mutable ulb_chars : int array;
mutable ulb_chars_pos : int array;
mutable ulb_chars_len : int;
mutable ulb_eof : bool;
mutable ulb_refill : string -> int -> int -> int;
mutable ulb_enc_change_hook : Netulex.ULB.unicode_lexbuf -> unit;
mutable ulb_cursor : Netconversion.cursor;
}
val from_function :
?raw_size:int ->
?char_size:int ->
?enc_change_hook:(Netulex.ULB.unicode_lexbuf -> unit) ->
refill:(string -> int -> int -> int) ->
Netconversion.encoding -> Netulex.ULB.unicode_lexbuf
val from_in_obj_channel :
?raw_size:int ->
?char_size:int ->
?enc_change_hook:(Netulex.ULB.unicode_lexbuf -> unit) ->
Netconversion.encoding ->
Netchannels.in_obj_channel -> Netulex.ULB.unicode_lexbuf
val from_string :
?enc_change_hook:(Netulex.ULB.unicode_lexbuf -> unit) ->
Netconversion.encoding -> string -> Netulex.ULB.unicode_lexbuf
val from_string_inplace :
?enc_change_hook:(Netulex.ULB.unicode_lexbuf -> unit) ->
Netconversion.encoding -> string -> Netulex.ULB.unicode_lexbuf
val delete : int -> Netulex.ULB.unicode_lexbuf -> unit
val refill : Netulex.ULB.unicode_lexbuf -> unit
val set_encoding :
Netconversion.encoding -> Netulex.ULB.unicode_lexbuf -> unit
val close : Netulex.ULB.unicode_lexbuf -> unit
val utf8_sub_string : int -> int -> Netulex.ULB.unicode_lexbuf -> string
val utf8_sub_string_length :
int -> int -> Netulex.ULB.unicode_lexbuf -> int
end`