File: stdcompat__stringLabels.ml.in

package info (click to toggle)
ocaml-stdcompat 14-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 5,152 kB
  • sloc: ml: 22,329; makefile: 211; sh: 120
file content (78 lines) | stat: -rw-r--r-- 1,648 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
include StringLabels

@BEGIN_BEFORE_3_08_0@
type t = string
@END_BEFORE_3_08_0@

@BEGIN_BEFORE_4_07_0@
let of_seq g = Buffer.contents (Stdcompat__buffer.of_seq g)

let to_seq s = Stdcompat__tools.vec_to_seq length unsafe_get s

let to_seqi s = Stdcompat__tools.vec_to_seqi length unsafe_get s
@END_BEFORE_4_07_0@

@BEGIN_BEFORE_4_05_0@
let lowercase_ascii = lowercase

let uppercase_ascii = uppercase

let capitalize_ascii = capitalize

let uncapitalize_ascii = uncapitalize

let equal : t -> t -> bool = ( = )

let split_on_char ~sep s =
  let previous_index = ref (length s) in
  let accu = ref [] in
  for i = length s - 1 downto 0 do
    if unsafe_get s i = sep then
      begin
        accu := sub s (i + 1) (!previous_index - i - 1) :: !accu;
        previous_index := i
      end
  done;
  sub s 0 !previous_index :: !accu

let index_opt s c =
  Stdcompat__tools.option_find (index s) c

let rindex_opt s c =
  Stdcompat__tools.option_find (rindex s) c

let index_from_opt s i c =
  Stdcompat__tools.option_find (index_from s i) c

let rindex_from_opt s i c =
  Stdcompat__tools.option_find (rindex_from s i) c
@END_BEFORE_4_05_0@

@BEGIN_BEFORE_4_02_0@
let init n ~f =
  let s = create n in
  for i = 0 to n - 1 do
    s.[i] <- f i
  done;
  s

let mapi ~f s =
  init (length s) (fun i -> f i (unsafe_get s i))
@END_BEFORE_4_02_0@

@BEGIN_BEFORE_4_00_0@
let iteri ~f s =
  for i = 0 to length s - 1 do
    f i (unsafe_get s i)
  done

let map ~f s =
  init (length s) (fun i -> f (unsafe_get s i))

let trim s =
  Stdcompat__string.trim s
@END_BEFORE_4_00_0@

@BEGIN_BEFORE_3_08_0@
let compare : t -> t -> int = compare
@END_BEFORE_3_08_0@