OCaml library for JSONfeed parsing and creation
1(** Author information for JSON Feed items and feeds. *)
2
3type t = {
4 name : string option;
5 url : string option;
6 avatar : string option;
7}
8
9let create ?name ?url ?avatar () =
10 if name = None && url = None && avatar = None then
11 invalid_arg "Author.create: at least one field (name, url, or avatar) must be provided";
12 { name; url; avatar }
13
14let name t = t.name
15let url t = t.url
16let avatar t = t.avatar
17
18let is_valid t =
19 t.name <> None || t.url <> None || t.avatar <> None
20
21let equal a b =
22 a.name = b.name && a.url = b.url && a.avatar = b.avatar
23
24let pp ppf t =
25 match t.name, t.url with
26 | Some name, Some url -> Format.fprintf ppf "%s <%s>" name url
27 | Some name, None -> Format.fprintf ppf "%s" name
28 | None, Some url -> Format.fprintf ppf "<%s>" url
29 | None, None ->
30 match t.avatar with
31 | Some avatar -> Format.fprintf ppf "(avatar: %s)" avatar
32 | None -> Format.fprintf ppf "(empty author)"