Import Upstream version 20180207
[hcoop/debian/mlton.git] / basis-library / util / CUtil.sig
CommitLineData
7f918cf1
CE
1(* Copyright (C) 1999-2006, 2008 Henry Cejtin, Matthew Fluet, Suresh
2 * Jagannathan, and Stephen Weeks.
3 * Copyright (C) 1997-2000 NEC Research Institute.
4 *
5 * MLton is released under a BSD-style license.
6 * See the file MLton-LICENSE for details.
7 *)
8
9signature C_UTIL =
10 sig
11 structure C_Pointer :
12 sig
13 type t = C_Pointer.t
14
15 val null: t
16 val isNull: t -> bool
17 end
18
19 (* C char* *)
20 structure C_String :
21 sig
22 type t = C_String.t
23
24 (* string must be null terminated *)
25 val length: t -> int
26 val sub: t * int -> char
27 val toCharArrayOfLength: t * int -> char array
28 (* string must be null terminated *)
29 val toString: t -> string
30 (* extract first n characters of string *)
31 val toStringOfLength: t * int -> string
32 val update: t * int * char -> unit
33 end
34
35 (* NULL terminated char** *)
36 structure C_StringArray :
37 sig
38 type t = C_StringArray.t
39
40 val fromList: string list -> NullString.t array
41 (* extract first n strings from array *)
42 val toArrayOfLength: t * int -> string array
43 val toList: t -> string list
44 end
45 end