`sig
type input = {
pos_in : unit -> int;
seek_in : int -> unit;
input_char : unit -> char option;
input_byte : unit -> int;
in_channel_length : int;
set_offset : int -> unit;
caml_channel : Stdlib.in_channel option;
source : string;
}
type output = {
pos_out : unit -> int;
seek_out : int -> unit;
output_char : char -> unit;
output_byte : int -> unit;
output_string : string -> unit;
out_caml_channel : Stdlib.out_channel option;
out_channel_length : unit -> int;
}
val no_more : int
type caml_bytes = bytes
type bytes
val input_of_channel : ?source:string -> Stdlib.in_channel -> Pdfio.input
val input_of_bytes : ?source:string -> Pdfio.bytes -> Pdfio.input
val input_of_string : ?source:string -> string -> Pdfio.input
val output_of_channel : Stdlib.out_channel -> Pdfio.output
val input_output_of_bytes : int -> Pdfio.output * Pdfio.bytes Stdlib.ref
val extract_bytes_from_input_output :
Pdfio.output -> Pdfio.bytes Stdlib.ref -> Pdfio.bytes
val nudge : Pdfio.input -> unit
val rewind : Pdfio.input -> unit
val peek_char : Pdfio.input -> char option
val peek_byte : Pdfio.input -> int
val read_char_back : Pdfio.input -> char option
val read_line : Pdfio.input -> string
val read_lines : Pdfio.input -> string list
type rawbytes =
(int, Stdlib.Bigarray.int8_unsigned_elt, Stdlib.Bigarray.c_layout)
Stdlib.Bigarray.Array1.t
val raw_of_bytes : Pdfio.bytes -> Pdfio.rawbytes
val bytes_of_raw : Pdfio.rawbytes -> Pdfio.bytes
val mkbytes : int -> Pdfio.bytes
val bytes_size : Pdfio.bytes -> int
val fillbytes : int -> Pdfio.bytes -> unit
val print_bytes : Pdfio.bytes -> unit
val bget : Pdfio.bytes -> int -> int
val bget_unsafe : Pdfio.bytes -> int -> int
val getinit : Pdfio.output -> Pdfio.bytes -> int -> int -> unit
val bset : Pdfio.bytes -> int -> int -> unit
val bset_unsafe : Pdfio.bytes -> int -> int -> unit
val setinit : Pdfio.input -> Pdfio.bytes -> int -> int -> unit
val setinit_string : Pdfio.input -> Pdfio.caml_bytes -> int -> int -> unit
val bytes_of_input : Pdfio.input -> int -> int -> Pdfio.bytes
val string_of_input : Pdfio.input -> string
val bytes_of_string : string -> Pdfio.bytes
val bytes_of_caml_bytes : Pdfio.caml_bytes -> Pdfio.bytes
val bytes_of_list : int list -> Pdfio.bytes
val bytes_of_charlist : char list -> Pdfio.bytes
val bytes_of_arraylist : int array list -> Pdfio.bytes
val bytes_of_int_array : int array -> Pdfio.bytes
val int_array_of_bytes : Pdfio.bytes -> int array
val int_array_of_string : string -> int array
val string_of_int_arrays : int array list -> string
val string_of_int_array : int array -> string
val bytes_selfmap : (int -> int) -> Pdfio.bytes -> unit
val string_of_bytes : Pdfio.bytes -> string
val charlist_of_bytes : Pdfio.bytes -> char list
val copybytes : Pdfio.bytes -> Pdfio.bytes
val bytes_to_output_channel : Stdlib.out_channel -> Pdfio.bytes -> unit
val bytes_of_input_channel : Stdlib.in_channel -> Pdfio.bytes
type bitstream = {
input : Pdfio.input;
mutable currbyte : int;
mutable bit : int;
mutable bitsread : int;
}
val bitbytes_of_input : Pdfio.input -> Pdfio.bitstream
type bitstream_position
val bitstream_pos : Pdfio.bitstream -> Pdfio.bitstream_position
val bitstream_seek : Pdfio.bitstream -> Pdfio.bitstream_position -> unit
val getbit : Pdfio.bitstream -> bool
val getbitint : Pdfio.bitstream -> int
val align : Pdfio.bitstream -> unit
val getval_32 : Pdfio.bitstream -> int -> int32
val getval_31 : Pdfio.bitstream -> int -> int
type bitstream_write
val make_write_bitstream : unit -> Pdfio.bitstream_write
val putbit : Pdfio.bitstream_write -> int -> unit
val putval : Pdfio.bitstream_write -> int -> int32 -> unit
val align_write : Pdfio.bitstream_write -> unit
val write_bitstream_append_aligned :
Pdfio.bitstream_write -> Pdfio.bitstream_write -> Pdfio.bitstream_write
val bytes_of_write_bitstream : Pdfio.bitstream_write -> Pdfio.bytes
val debug_next_n_chars : int -> Pdfio.input -> unit
end`