diff options
| author | Adelyn Breedlove <[email protected]> | 2019-01-28 10:31:51 -0700 |
|---|---|---|
| committer | Adelyn Breedlove <[email protected]> | 2019-01-28 10:31:51 -0700 |
| commit | 8662e92987c437f59d09896a247ec2b5d82c4528 (patch) | |
| tree | f004cc14598351d4ad6b19d8e993d2f629c5e738 /lib/models/channel/message/embed.ml | |
| parent | Add more docs (diff) | |
| download | disml-8662e92987c437f59d09896a247ec2b5d82c4528.tar.xz disml-8662e92987c437f59d09896a247ec2b5d82c4528.zip | |
Publish docs updates
Diffstat (limited to 'lib/models/channel/message/embed.ml')
| -rw-r--r-- | lib/models/channel/message/embed.ml | 240 |
1 files changed, 120 insertions, 120 deletions
diff --git a/lib/models/channel/message/embed.ml b/lib/models/channel/message/embed.ml index 9f9aacd..584d3c7 100644 --- a/lib/models/channel/message/embed.ml +++ b/lib/models/channel/message/embed.ml @@ -1,121 +1,121 @@ -open Core - -type footer = { - text: string; - icon_url: string option [@default None]; - proxy_icon_url: string option [@default None]; -} [@@deriving sexp, yojson] - -type image = { - url: string option [@default None]; - proxy_url: string option [@default None]; - height: int option [@default None]; - width: int option [@default None]; -} [@@deriving sexp, yojson] - -type video = { - url: string option [@default None]; - height: int option [@default None]; - width: int option [@default None]; -} [@@deriving sexp, yojson] - -type provider = { - name: string option [@default None]; - url: string option [@default None]; -} [@@deriving sexp, yojson] - -type author = { - name: string option [@default None]; - url: string option [@default None]; - icon_url: string option [@default None]; - proxy_icon_url: string option [@default None]; -} [@@deriving sexp, yojson] - -type field = { - name: string; - value: string; - inline: bool [@default false]; -} [@@deriving sexp, yojson] - -type t = { - title: string option [@default None]; - kind: string option [@default None][@key "type"]; - description: string option [@default None]; - url: string option [@default None]; - timestamp: string option [@default None]; - colour: int option [@default None][@key "color"]; - footer: footer option [@default None]; - image: image option [@default None]; - thumbnail: image option [@default None]; - video: video option [@default None]; - provider: provider option [@default None]; - author: author option [@default None]; - fields: field list [@default []]; -} [@@deriving sexp, yojson { strict = false }] - -let default = { - title = None; - kind = None; - description = None; - url = None; - timestamp = None; - colour = None; - footer = None; - image = None; - thumbnail = None; - video = None; - provider = None; - author = None; - fields = []; -} - -let default_footer = { - text = ""; - icon_url = None; - proxy_icon_url = None; -} - -let default_image = { - url = None; - proxy_url = None; - height = None; - width = None; -} - -let default_video = { - url = None; - width = None; - height = None; -} - -let default_provider = { - name = None; - url = None; -} - -let default_author = { - name = None; - url = None; - icon_url = None; - proxy_icon_url = None; -} - -let title v e = { e with title = Some v } -let description v e = { e with description = Some v } -let url v e = { e with url = Some v } -let timestamp v e = { e with timestamp = Some v } -let colour v e = { e with colour = Some v } -let color v e = { e with colour = Some v } -let footer f e = { e with footer = Some (f default_footer) } -let image v e = { e with image = Some { default_image with url = Some v } } -let thumbnail v e = { e with thumbnail = Some { default_image with url = Some v } } -let author f e = { e with author = Some (f default_author) } -let field (name, value, inline) e = { e with fields = { name; value; inline; }::e.fields } -let fields l e = { e with fields = List.map ~f:(fun (name, value, inline) -> { name; value; inline; }) l } - -let footer_text v f : footer = { f with text = v } -let footer_icon v f : footer = { f with icon_url = Some v } - -let author_name v a : author = { a with name = Some v } -let author_url v a : author = { a with url = Some v } +open Core
+
+type footer = {
+ text: string;
+ icon_url: string option [@default None];
+ proxy_icon_url: string option [@default None];
+} [@@deriving sexp, yojson]
+
+type image = {
+ url: string option [@default None];
+ proxy_url: string option [@default None];
+ height: int option [@default None];
+ width: int option [@default None];
+} [@@deriving sexp, yojson]
+
+type video = {
+ url: string option [@default None];
+ height: int option [@default None];
+ width: int option [@default None];
+} [@@deriving sexp, yojson]
+
+type provider = {
+ name: string option [@default None];
+ url: string option [@default None];
+} [@@deriving sexp, yojson]
+
+type author = {
+ name: string option [@default None];
+ url: string option [@default None];
+ icon_url: string option [@default None];
+ proxy_icon_url: string option [@default None];
+} [@@deriving sexp, yojson]
+
+type field = {
+ name: string;
+ value: string;
+ inline: bool [@default false];
+} [@@deriving sexp, yojson]
+
+type t = {
+ title: string option [@default None];
+ kind: string option [@default None][@key "type"];
+ description: string option [@default None];
+ url: string option [@default None];
+ timestamp: string option [@default None];
+ colour: int option [@default None][@key "color"];
+ footer: footer option [@default None];
+ image: image option [@default None];
+ thumbnail: image option [@default None];
+ video: video option [@default None];
+ provider: provider option [@default None];
+ author: author option [@default None];
+ fields: field list [@default []];
+} [@@deriving sexp, yojson { strict = false }]
+
+let default = {
+ title = None;
+ kind = None;
+ description = None;
+ url = None;
+ timestamp = None;
+ colour = None;
+ footer = None;
+ image = None;
+ thumbnail = None;
+ video = None;
+ provider = None;
+ author = None;
+ fields = [];
+}
+
+let default_footer = {
+ text = "";
+ icon_url = None;
+ proxy_icon_url = None;
+}
+
+let default_image = {
+ url = None;
+ proxy_url = None;
+ height = None;
+ width = None;
+}
+
+let default_video = {
+ url = None;
+ width = None;
+ height = None;
+}
+
+let default_provider = {
+ name = None;
+ url = None;
+}
+
+let default_author = {
+ name = None;
+ url = None;
+ icon_url = None;
+ proxy_icon_url = None;
+}
+
+let title v e = { e with title = Some v }
+let description v e = { e with description = Some v }
+let url v e = { e with url = Some v }
+let timestamp v e = { e with timestamp = Some v }
+let colour v e = { e with colour = Some v }
+let color v e = { e with colour = Some v }
+let footer f e = { e with footer = Some (f default_footer) }
+let image v e = { e with image = Some { default_image with url = Some v } }
+let thumbnail v e = { e with thumbnail = Some { default_image with url = Some v } }
+let author f e = { e with author = Some (f default_author) }
+let field (name, value, inline) e = { e with fields = { name; value; inline; }::e.fields }
+let fields l e = { e with fields = List.map ~f:(fun (name, value, inline) -> { name; value; inline; }) l }
+
+let footer_text v f : footer = { f with text = v }
+let footer_icon v f : footer = { f with icon_url = Some v }
+
+let author_name v a : author = { a with name = Some v }
+let author_url v a : author = { a with url = Some v }
let author_icon v a : author = { a with icon_url = Some v }
\ No newline at end of file |