Module Cst.Line

type 'a not_blank = {
trailing_blanks : Base.string;(*

regexp: " \t*"

*)
orig : Base.string;(*

Original contents of the line without the trailing blanks or indentation. regexp: "^\n*^ \t\n"

*)
data : 'a;(*

Data associated to the line.

*)
}
val sexp_of_not_blank : ('a -> Expect_test_matcher__.Import.Ppx_sexp_conv_lib.Sexp.t) -> 'a not_blank -> Expect_test_matcher__.Import.Ppx_sexp_conv_lib.Sexp.t
val compare_not_blank : ('a -> 'a -> Base.int) -> 'a not_blank -> 'a not_blank -> Base.int
val equal_not_blank : ('a -> 'a -> Base.bool) -> 'a not_blank -> 'a not_blank -> Base.bool
type 'a t =
| Blank of Base.string(*

regexp: " \t*"

*)
| Not_blank of 'a not_blank
val sexp_of_t : ('a -> Expect_test_matcher__.Import.Ppx_sexp_conv_lib.Sexp.t) -> 'a t -> Expect_test_matcher__.Import.Ppx_sexp_conv_lib.Sexp.t
val compare : ('a -> 'a -> Base.int) -> 'a t -> 'a t -> Base.int
val equal : ('a -> 'a -> Base.bool) -> 'a t -> 'a t -> Base.bool
val invariant : ('a -> Base.unit) -> 'a t -> Base.unit
val map : 'a t -> f:(Base.string -> 'a -> 'b) -> 'b t

The callback receive the orig and data fields

val strip : 'a t -> 'a t

Delete trailing blanks (everything for blank lines)

val data : 'a t -> blank:'a -> 'a