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
type t = Uri.t
let of_string = Uri.of_string
let is_file_path _ = true
module File = struct
type uri = t
type t =
{ uri : uri
; file : string
}
let of_uri uri = Result.Ok { uri; file = Uri.pct_decode (Uri.path uri) }
let to_string_uri { uri; _ } = Uri.to_string uri
let to_string_file { file; _ } = file
let extension { file; _ } = Filename.extension file
let hash = Hashtbl.hash
let compare = Stdlib.compare
let equal = Stdlib.( = )
let pp fmt uri = Format.fprintf fmt "%a" Uri.pp uri.uri
end