Module Email_message__.Bigstring_shared

type t = private Core.Bigstring.t

Immutable sequences of bytes which can be windowed efficiently.

val sexp_of_t : t -> Ppx_sexp_conv_lib.Sexp.t
val compare : t -> t -> int
val hash_fold_t : Base.Hash.state -> t -> Base.Hash.state
val hash : t -> Base.Hash.hash_value
val of_bigstring : Core.Bigstring.t -> t
val to_bigstring : t -> Core.Bigstring.t
include Core.Stringable.S with type t := t
type t
val of_string : string -> t
val to_string : t -> string
include Email_message__.String_monoidable.S with type t := t
type t
val to_string_monoid : t -> Email_message.String_monoid.t
val to_lexbuf : t -> Stdlib.Lexing.lexbuf
val empty : t

Empty, immutable Bigstring

val length : t -> int
val sub : ?⁠pos:int -> ?⁠len:int -> t -> t
val foldi : t -> init:'b -> f:(int -> 'b -> char -> 'b) -> 'b
val lines_seq : ?⁠include_empty_last_line:unit -> t -> t Core.Sequence.t

include_empty_last_line determines whether a string that ends in "\n" has an empty string as the last line.

iter_lines and split_lines do not include an empty last line.

val iter_lines : t -> f:(t -> unit) -> unit
val split_lines : t -> t list
val of_bigbuffer_volatile : Core.Bigbuffer.t -> t

Gets a bigstring from a bigbuffer with minimal memory overhead.

val of_string_monoid : Email_message.String_monoid.t -> t
val substr_index : ?⁠pos:int -> t -> pattern:t -> int option
module Stable : sig ... end