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)"