Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | signature VECTOR_SLICE_GLOBAL = |
2 | sig | |
3 | end | |
4 | ||
5 | signature VECTOR_SLICE = | |
6 | sig | |
7 | include VECTOR_SLICE_GLOBAL | |
8 | ||
9 | type 'a slice | |
10 | ||
11 | val length: 'a slice -> int | |
12 | val sub: 'a slice * int -> 'a | |
13 | val full: 'a Vector.vector -> 'a slice | |
14 | val slice: 'a Vector.vector * int * int option -> 'a slice | |
15 | val subslice: 'a slice * int * int option -> 'a slice | |
16 | val base: 'a slice -> 'a Vector.vector * int * int | |
17 | val vector: 'a slice -> 'a Vector.vector | |
18 | val concat: 'a slice list -> 'a Vector.vector | |
19 | val isEmpty: 'a slice -> bool | |
20 | val getItem: 'a slice -> ('a * 'a slice) option | |
21 | val appi: (int * 'a -> unit) -> 'a slice -> unit | |
22 | val app: ('a -> unit) -> 'a slice -> unit | |
23 | val mapi: (int * 'a -> 'b) -> 'a slice -> 'b Vector.vector | |
24 | val map: ('a -> 'b) -> 'a slice -> 'b Vector.vector | |
25 | val foldli: (int * 'a * 'b -> 'b) -> 'b -> 'a slice -> 'b | |
26 | val foldl: ('a * 'b -> 'b) -> 'b -> 'a slice -> 'b | |
27 | val foldri: (int * 'a * 'b -> 'b) -> 'b -> 'a slice -> 'b | |
28 | val foldr: ('a * 'b -> 'b) -> 'b -> 'a slice -> 'b | |
29 | val findi: (int * 'a -> bool) -> 'a slice -> (int * 'a) option | |
30 | val find: ('a -> bool) -> 'a slice -> 'a option | |
31 | val exists: ('a -> bool) -> 'a slice -> bool | |
32 | val all: ('a -> bool) -> 'a slice -> bool | |
33 | val collate: ('a * 'a -> order) -> 'a slice * 'a slice -> order | |
34 | end | |
35 | ||
36 | signature VECTOR_SLICE_EXTRA = | |
37 | sig | |
38 | include VECTOR_SLICE | |
39 | ||
40 | val copy: {dst: 'a Array.array, di: int, src: 'a slice} -> unit | |
41 | ||
42 | val unsafeSub: 'a slice * int -> 'a | |
43 | val unsafeCopy: {dst: 'a Array.array, di: int, src: 'a slice} -> unit | |
44 | val unsafeSlice: 'a Vector.vector * int * int option -> 'a slice | |
45 | val unsafeSubslice: 'a slice * int * int option -> 'a slice | |
46 | ||
47 | (* Used to implement Substring/String functions *) | |
48 | val concatWith: 'a Vector.vector -> 'a slice list -> 'a Vector.vector | |
49 | val triml: int -> 'a slice -> 'a slice | |
50 | val trimr: int -> 'a slice -> 'a slice | |
51 | val isPrefix: ('a * 'a -> bool) -> 'a Vector.vector -> 'a slice -> bool | |
52 | val isSubvector: ('a * 'a -> bool) -> 'a Vector.vector -> 'a slice -> bool | |
53 | val isSuffix: ('a * 'a -> bool) -> 'a Vector.vector -> 'a slice -> bool | |
54 | val splitl: ('a -> bool) -> 'a slice -> 'a slice * 'a slice | |
55 | val splitr: ('a -> bool) -> 'a slice -> 'a slice * 'a slice | |
56 | val splitAt: 'a slice * int -> 'a slice * 'a slice | |
57 | val dropl: ('a -> bool) -> 'a slice -> 'a slice | |
58 | val dropr: ('a -> bool) -> 'a slice -> 'a slice | |
59 | val takel: ('a -> bool) -> 'a slice -> 'a slice | |
60 | val taker: ('a -> bool) -> 'a slice -> 'a slice | |
61 | val position: ('a * 'a -> bool) -> | |
62 | 'a Vector.vector -> 'a slice -> 'a slice * 'a slice | |
63 | val span: ''a slice * ''a slice -> ''a slice | |
64 | val translate: ('a -> 'b Vector.vector) -> 'a slice -> 'b Vector.vector | |
65 | val tokens: ('a -> bool) -> 'a slice -> 'a slice list | |
66 | val fields: ('a -> bool) -> 'a slice -> 'a slice list | |
67 | ||
68 | val toList: 'a slice -> 'a list | |
69 | end |