Source file utils.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
let find_list_index ~f l =
  let rec aux i = function
    | [] ->
      None
    | el :: _ when f el ->
      Some i
    | _ :: rest ->
      aux (i + 1) rest
  in
  aux 0 l

let index_of_default ?default l =
  Option.bind default (fun default ->
      find_list_index ~f:(String.equal default) l)
  |> Option.value ~default:0

let index_of_default_opt ?default l =
  Option.bind default (fun default ->
      find_list_index ~f:(String.equal default) l)