GPS Exchange Format library/CLI in OCaml
at main 2.3 kB view raw
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