package stdune

  1. Overview
  2. Docs
Dune's unstable standard library

Install

Dune Dependency

Authors

Maintainers

Sources

dune-3.19.1.tbz
sha256=a10386f980cda9417d1465466bed50dd2aef9c93b9d06a0f7feeedb0a1541158
sha512=d1622939713133a1f28617229896298d6ef194c48a47d011e4b752490fc83893cc920a8395d7ac60bc384a6c9b233ebf0665f38f74f2774a983e9d3b241a7746

doc/src/stdune/filename_set.ml.html

Source file filename_set.ml

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
(* CR-someday amokhov: Switch from sets to "flat sets" backed by immutable arrays. *)
type t =
  { dir : Path.t
  ; filenames : Filename.Set.t
  }

let equal t { dir; filenames } =
  Path.equal t.dir dir && Filename.Set.equal filenames t.filenames
;;

let dir { dir; filenames = _ } = dir
let filenames { dir = _; filenames } = filenames
let empty ~dir = { dir; filenames = String.Set.empty }
let is_empty { dir = _; filenames } = Filename.Set.is_empty filenames

let create ?filter ~dir filenames =
  match filter with
  | None -> { dir; filenames }
  | Some f ->
    { dir
    ; filenames =
        Filename.Set.to_list filenames
        |> List.filter ~f:(fun basename -> f ~basename)
        |> Filename.Set.of_list
    }
;;

let to_list { dir; filenames } = Filename.Set.to_list_map filenames ~f:(Path.relative dir)
OCaml

Innovation. Community. Security.