Import Upstream version 20180207
[hcoop/debian/mlton.git] / lib / mlton / basic / substring.sig
1 (* Copyright (C) 2009 Matthew Fluet.
2 * Copyright (C) 1999-2006 Henry Cejtin, Matthew Fluet, Suresh
3 * Jagannathan, and Stephen Weeks.
4 *
5 * MLton is released under a BSD-style license.
6 * See the file MLton-LICENSE for details.
7 *)
8
9 signature SUBSTRING =
10 sig
11 type t
12
13 val base: t -> string * {start: int, length: int}
14 val compare: t * t -> order
15 val concat: t list -> string
16 val endOf: t -> int (* start + length *)
17 val explode: t -> char list
18 val extract: string * int * int option -> t
19 val first: t -> char option
20 val full: string -> t
21 val getc: t -> (char * t) option
22 val isEmpty: t -> bool
23 val layout: t -> Layout.t
24 val length: t -> int
25 val slice: t * int * int option -> t
26 val span: t * t -> t
27 val string: t -> string
28 val sub: t * int -> char
29 val substring: string * {start: int, length: int} -> t
30 val toString: t -> string
31 end