123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120(* This module gathers parsing functions to supplement atdgen. *)moduleDate=Dropbox_dateletfloat_of_json=function|`Floatf->f|`Inti->floatimodulePhoto=structtypeinfo={time_taken:Date.toption;lat_long:(float*float)option}typet=[`None|`Pending|`Someofinfo]letset_infotime_takenlat_long=function|("time_taken",`Stringd)->time_taken:=Some(Date.of_stringd)|("lat_long",(`List[(`Float_|`Int_)asla;(`Float_|`Int_)aslo]|`Tuple[(`Float_|`Int_)asla;(`Float_|`Int_)aslo]))->lat_long:=Some(float_of_jsonla,float_of_jsonlo)|_->()letwrap:Yojson.Safe.t->t=function|`String_->`Pending|`Assocl->lettime_taken=refNoneinletlat_long=refNoneinList.iter(set_infotime_takenlat_long)l;`Some{time_taken=!time_taken;lat_long=!lat_long}|_->`Noneletunwrap:t->Yojson.Safe.t=function|`None->`Null|`Pending->`String"pending"|`Someinfo->letl=matchinfo.time_takenwith|Somed->["time_taken",`String(Date.to_stringd)]|None->[]inletl=matchinfo.lat_longwith|Some(la,lo)->("lat_long",`List[`Floatla;`Floatlo])::l|None->lin`AssoclendmoduleVideo=structtypeinfo={time_taken:Date.toption;duration:floatoption;lat_long:(float*float)option}typet=[`None|`Pending|`Someofinfo]letset_infotime_takendurationlat_long=function|("time_taken",`Stringd)->time_taken:=Some(Date.of_stringd)|("duration",(`Float_|`Int_asd))->duration:=Some(float_of_jsond)|("lat_long",(`List[(`Float_|`Int_)asla;(`Float_|`Int_)aslo]|`Tuple[(`Float_|`Int_)asla;(`Float_|`Int_)aslo]))->lat_long:=Some(float_of_jsonla,float_of_jsonlo)|_->()letwrap:Yojson.Safe.t->t=function|`String_->`Pending|`Assocl->lettime_taken=refNoneinletduration=refNoneinletlat_long=refNoneinList.iter(set_infotime_takendurationlat_long)l;`Some{time_taken=!time_taken;duration=!duration;lat_long=!lat_long}|_->`Noneletunwrap:t->Yojson.Safe.t=function|`None->`Null|`Pending->`String"pending"|`Someinfo->letl=matchinfo.time_takenwith|Somed->["time_taken",`String(Date.to_stringd)]|None->[]inletl=matchinfo.durationwith|Somed->("duration",`Floatd)::l|None->linletl=matchinfo.lat_longwith|Some(la,lo)->("lat_long",`List[`Floatla;`Floatlo])::l|None->lin`AssoclendmoduleVisibility=structtypet=[|`Public|`Team_only|`Password|`Team_and_password|`Shared_folder_only|`Otherofstring]letwrap:Yojson.Safe.t->t=function|`String"PUBLIC"->`Public|`String"TEAM_ONLY"->`Team_only|`String"PASSWORD"->`Password|`String"TEAM_AND_PASSWORD"->`Team_and_password|`String"SHARED_FOLDER_ONLY"->`Shared_folder_only|`Strings->`Others|_->Yojson.json_error"Visibility of shared link is not a string"letunwrap:t->Yojson.Safe.t=function|`Public->`String"PUBLIC"|`Team_only->`String"TEAM_ONLY"|`Password->`String"PASSWORD"|`Team_and_password->`String"TEAM_AND_PASSWORD"|`Shared_folder_only->`String"SHARED_FOLDER_ONLY"|`Others->`Stringsend