GPS Exchange Format library/CLI in OCaml
1(** Link and person information types *)
2
3(** Main link type *)
4type t = {
5 href : string;
6 text : string option;
7 type_ : string option;
8}
9
10(** Person information *)
11and person = {
12 name : string option;
13 email : string option;
14 link : t option;
15}
16
17(** Copyright information *)
18and copyright = {
19 author : string;
20 year : int option;
21 license : string option;
22}
23
24(** {2 Link Operations} *)
25
26(** Create a link.
27 @param href URL reference (required)
28 @param ?text Optional link text
29 @param ?type_ Optional MIME type *)
30val make : href:string -> ?text:string -> ?type_:string -> unit -> t
31
32(** Get href from link *)
33val href : t -> string
34
35(** Get optional text from link *)
36val text : t -> string option
37
38(** Get optional type from link *)
39val type_ : t -> string option
40
41(** Update text *)
42val with_text : t -> string -> t
43
44(** Update type *)
45val with_type : t -> string -> t
46
47
48(** Compare links *)
49val compare : t -> t -> int
50
51(** Test link equality *)
52val equal : t -> t -> bool
53
54(** Pretty print link *)
55val pp : Format.formatter -> t -> unit
56
57(** {2 Person Operations} *)
58
59(** Create person information *)
60val make_person : ?name:string -> ?email:string -> ?link:t -> unit -> person
61
62(** Get person name *)
63val person_name : person -> string option
64
65(** Get person email *)
66val person_email : person -> string option
67
68(** Get person link *)
69val person_link : person -> t option
70
71(** Compare persons *)
72val compare_person : person -> person -> int
73
74(** Test person equality *)
75val equal_person : person -> person -> bool
76
77(** Pretty print person *)
78val pp_person : Format.formatter -> person -> unit
79
80(** {2 Copyright Operations} *)
81
82(** Create copyright information *)
83val make_copyright : author:string -> ?year:int -> ?license:string -> unit -> copyright
84
85(** Get copyright author *)
86val copyright_author : copyright -> string
87
88(** Get copyright year *)
89val copyright_year : copyright -> int option
90
91(** Get copyright license *)
92val copyright_license : copyright -> string option
93
94(** Compare copyrights *)
95val compare_copyright : copyright -> copyright -> int
96
97(** Test copyright equality *)
98val equal_copyright : copyright -> copyright -> bool
99
100(** Pretty print copyright *)
101val pp_copyright : Format.formatter -> copyright -> unit