Core_kernel.BigstringString type based on Bigarray, for use in I/O and C-bindings.
Type of bigstrings
val compare : t -> t -> Base.Int.tval sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.ttype t_frozen = tType of bigstrings which support hashing. Note that mutation invalidates previous hashes.
val compare_t_frozen : t_frozen -> t_frozen -> Base.Int.tval hash_fold_t_frozen : Base.Hash.state -> t_frozen -> Base.Hash.stateval hash_t_frozen : t_frozen -> Base.Hash.hash_valueval sexp_of_t_frozen : t_frozen -> Ppx_sexp_conv_lib.Sexp.tinclude module type of Base_bigstring with type t := t and type t_frozen := t_frozenval t_of_sexp : Sexplib0.Sexp.t -> tval sexp_of_t : t -> Sexplib0.Sexp.tval hash_fold_t_frozen : Base.Hash.state -> t_frozen -> Base.Hash.stateval hash_t_frozen : t_frozen -> Base.Hash.hash_valueval sexp_of_t_frozen : t_frozen -> Ppx_sexp_conv_lib.Sexp.tval t_frozen_of_sexp : Ppx_sexp_conv_lib.Sexp.t -> t_frozenval equal : t Base.Equal.equalval of_string : ?pos:Base.int -> ?len:Base.int -> Base.string -> tval of_bytes : ?pos:Base.int -> ?len:Base.int -> Base.bytes -> tval to_string : ?pos:Base.int -> ?len:Base.int -> t -> Base.stringval to_bytes : ?pos:Base.int -> ?len:Base.int -> t -> Base.bytesval check_args : loc:Base.string -> pos:Base.int -> len:Base.int -> t -> Base.unitval get_opt_len : t -> pos:Base.int -> Base.int Base.option -> Base.intmodule To_string : sig ... endmodule From_string : sig ... endmodule To_bytes : sig ... endmodule From_bytes : sig ... endval get_int32_t_le : t -> pos:Base.int -> Base.Int32.tval get_int32_t_be : t -> pos:Base.int -> Base.Int32.tval set_int32_t_le : t -> pos:Base.int -> Base.Int32.t -> Base.unitval set_int32_t_be : t -> pos:Base.int -> Base.Int32.t -> Base.unitval unsafe_get_int32_t_le : t -> pos:Base.int -> Base.Int32.tval unsafe_get_int32_t_be : t -> pos:Base.int -> Base.Int32.tval unsafe_set_int32_t_le : t -> pos:Base.int -> Base.Int32.t -> Base.unitval unsafe_set_int32_t_be : t -> pos:Base.int -> Base.Int32.t -> Base.unitval get_int64_t_le : t -> pos:Base.int -> Base.Int64.tval get_int64_t_be : t -> pos:Base.int -> Base.Int64.tval set_int64_t_le : t -> pos:Base.int -> Base.Int64.t -> Base.unitval set_int64_t_be : t -> pos:Base.int -> Base.Int64.t -> Base.unitval unsafe_get_int64_t_le : t -> pos:Base.int -> Base.Int64.tval unsafe_get_int64_t_be : t -> pos:Base.int -> Base.Int64.tval unsafe_set_int64_t_le : t -> pos:Base.int -> Base.Int64.t -> Base.unitval unsafe_set_int64_t_be : t -> pos:Base.int -> Base.Int64.t -> Base.unitmodule Private : sig ... endval create : ?max_mem_waiting_gc:Core_kernel__Byte_units0.t -> Base.Int.t -> tcreate length
sub_shared ?pos ?len bstr
These functions write the "size-prefixed" bin-prot format that is used by, e.g., async's Writer.write_bin_prot, Reader.read_bin_prot and Unpack_buffer.Unpack_one.create_bin_prot.
val write_bin_prot : t -> ?pos:Base.Int.t -> 'a Bin_prot.Type_class.writer -> 'a -> Base.Int.twrite_bin_prot t writer a writes a to t starting at pos, and returns the index in t immediately after the last byte written. It raises if pos < 0 or if a doesn't fit in t.
val read_bin_prot : t -> ?pos:Base.Int.t -> ?len:Base.Int.t -> 'a Bin_prot.Type_class.reader -> ('a * Base.Int.t) Or_error.tThe read_bin_prot* functions read from the region of t starting at pos of length len. They return the index in t immediately after the last byte read. They raise if pos and len don't describe a region of t.
val read_bin_prot_verbose_errors : t -> ?pos:Base.Int.t -> ?len:Base.Int.t ->
'a Bin_prot.Type_class.reader -> [ `Invalid_data of Error.t | `Not_enough_data | `Ok of 'a * Base.Int.t ]val unsafe_destroy : t -> Base.Unit.tunsafe_destroy bstr destroys the bigstring by deallocating its associated data or, if memory-mapped, unmapping the corresponding file, and setting all dimensions to zero. This effectively frees the associated memory or address-space resources instantaneously. This feature helps working around a bug in the current OCaml runtime, which does not correctly estimate how aggressively to reclaim such resources.
This operation is safe unless you have passed the bigstring to another thread that is performing operations on it at the same time. Access to the bigstring after this operation will yield array bounds exceptions.
val unsafe_destroy_and_resize : t -> len:Base.Int.t -> tunsafe_destroy_and_resize bstr ~len reallocates the memory backing bstr and returns a new bigstring that starts at position 0 and has length len. If len is greater than length bstr then the newly allocated memory will not be initialized.
Similar to unsafe_destroy, this operation is safe unless you have passed the bigstring to another thread that is performing operations on it at the same time. Access to bstr after this operation will yield array bounds exceptions.
val get_tail_padded_fixed_string : padding:Base.Char.t -> t -> pos:Base.Int.t -> len:Base.Int.t -> Base.Unit.t -> Base.String.tSimilar to Binary_packing.unpack_tail_padded_fixed_string and .pack_tail_padded_fixed_string.
val set_tail_padded_fixed_string : padding:Base.Char.t -> t -> pos:Base.Int.t -> len:Base.Int.t -> Base.String.t -> Base.Unit.tval get_head_padded_fixed_string : padding:Base.Char.t -> t -> pos:Base.Int.t -> len:Base.Int.t -> Base.Unit.t -> Base.String.tval set_head_padded_fixed_string : padding:Base.Char.t -> t -> pos:Base.Int.t -> len:Base.Int.t -> Base.String.t -> Base.Unit.tmodule Unstable : sig ... endmodule Stable : sig ... end