package core_kernel

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

A With_text.t is a value paired with the full textual representation of its sexp. This is useful for dealing with the case where you want to keep track of a value along with the format of the s-expression it was generated from, which allows you to maintain formatting details, comments, etc.

The s-expression representation of a With_text.t is the raw text, stored as an atom. The bin_io representation contains both the bin_io of the underlying value and the bin_io'd version of the raw text.

This is similar to but simpler than the With_layout module included above (via Sexp_intf.S), which gives you access to a fully parsed version of the s-expression, with attached comments and layout information, to allow you to build layout-preserving s-expression transformations.

The invariants of a x With_text.t are broken if the x value is mutated.

type 'a t
val t_of_sexp : (Ppx_sexp_conv_lib.Sexp.t -> 'a) -> Ppx_sexp_conv_lib.Sexp.t -> 'a t
val sexp_of_t : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> 'a t -> Ppx_sexp_conv_lib.Sexp.t
val bin_read_t : 'a Bin_prot.Read.reader -> 'a t Bin_prot.Read.reader
val __bin_read_t__ : 'a Bin_prot.Read.reader -> (Base.Int.t -> 'a t) Bin_prot.Read.reader
val bin_size_t : 'a Bin_prot.Size.sizer -> 'a t Bin_prot.Size.sizer
val bin_write_t : 'a Bin_prot.Write.writer -> 'a t Bin_prot.Write.writer
val bin_shape_t : Bin_prot.Shape.t -> Bin_prot.Shape.t
val of_value : ('a -> Base.Sexp.t) -> 'a -> 'a t

Generates a t from the value by creating the text automatically using the provided s-expression converter.

val of_text : (Base.Sexp.t -> 'a) -> ?filename:Base.String.t -> Base.String.t -> 'a t Or_error.t

Creates a t from the text, by first converting the text to an s-expression, and then parsing the s-expression with the provided converter.

val value : 'a t -> 'a
val text : 'a t -> Base.String.t