Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | (* Copyright (C) 1999-2006 Henry Cejtin, Matthew Fluet, Suresh |
2 | * Jagannathan, and Stephen Weeks. | |
3 | * | |
4 | * MLton is released under a BSD-style license. | |
5 | * See the file MLton-LICENSE for details. | |
6 | *) | |
7 | ||
8 | structure Substring: SUBSTRING = | |
9 | struct | |
10 | open Pervasive.Substring | |
11 | ||
12 | type t = substring | |
13 | ||
14 | val length = size | |
15 | ||
16 | val substring = | |
17 | fn (s, {start, length}) => substring (s, start, length) | |
18 | ||
19 | val base = | |
20 | fn ss => let val (s, start, length) = base ss | |
21 | in (s, {start = start, length = length}) | |
22 | end | |
23 | ||
24 | val toString = string | |
25 | ||
26 | val layout = String1.layout o toString | |
27 | ||
28 | fun endOf ss = | |
29 | let | |
30 | val (_, {start, length}) = base ss | |
31 | in | |
32 | start + length | |
33 | end | |
34 | end |