12345678910111213141516171819202122232425262728293031323334353637383940414243444546(** Signature for runtime implementations of Ppx_string's backend.
May be used for derived ppxes using different types or modified behavior. Types [t],
[conversion], and [length] should be erased using destructive substitution, i.e. [:=].
Otherwise they introduce new aliases for the types in question, and error messages or
Merlin may start referring to them. *)moduletypeS=sig(** Result type of interpolation, and of interpolated %{values}. *)typet(** Result type of %{converted#String} interpolated values. This will often be either
[string] or [t], depending on what is convenient for the configured ppx. *)typeconversion(** Type of length values for %{padding#:8}. *)typelength(** Empty string. *)valempty:t(** Literal string. *)valof_string:string->t(** Finish a conversion to [t]. *)valconvert:conversion->t(** Combine multiple values in order. *)valconcat:tlist->t(** Pad to some minimum length. *)valpad:t->len:length->t(** Identity function.
Used for ensuring an argument has type [t] in expanded code, without needing the
type [t] to be exported explicitly for a type annotation. See note above about
destructive substitution. *)externalidentity:t->t="%identity"endmoduletypePpx_string_runtime=sigmoduletypeS=SmoduleFor_string:Swithtypet:=stringandtypelength:=intandtypeconversion:=stringend