aboutsummaryrefslogtreecommitdiff
path: root/lib/dispatch.ml
blob: c6d717b356dbfd239fc50c78ecce68322c112298 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
open Async

type t = {
    hello: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t;
    ready: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t;
    resumed: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t;
    invalid_session: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t;
    channel_create: Channel.t Pipe.Reader.t * Channel.t Pipe.Writer.t;
    channel_update: Channel.t Pipe.Reader.t * Channel.t Pipe.Writer.t;
    channel_delete: Channel.t Pipe.Reader.t * Channel.t Pipe.Writer.t;
    channel_pins_update: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t;
    guild_create: Guild.t Pipe.Reader.t * Guild.t Pipe.Writer.t;
    guild_update: Guild.t Pipe.Reader.t * Guild.t Pipe.Writer.t;
    guild_delete: Guild.t Pipe.Reader.t * Guild.t Pipe.Writer.t;
    guild_ban_add: Ban.t Pipe.Reader.t * Ban.t Pipe.Writer.t;
    guild_ban_remove: Ban.t Pipe.Reader.t * Ban.t Pipe.Writer.t;
    guild_emojis_update: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t;
    guild_integrations_update: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t;
    guild_member_add: Member.t Pipe.Reader.t * Member.t Pipe.Writer.t;
    guild_member_remove: Member.t Pipe.Reader.t * Member.t Pipe.Writer.t;
    guild_member_update: Member.t Pipe.Reader.t * Member.t Pipe.Writer.t;
    guild_members_chunk: (Member.t list) Pipe.Reader.t * (Member.t list) Pipe.Writer.t;
    guild_role_create: (Role.t * Guild.t) Pipe.Reader.t * (Role.t * Guild.t) Pipe.Writer.t;
    guild_role_update: (Role.t * Guild.t) Pipe.Reader.t * (Role.t * Guild.t) Pipe.Writer.t;
    guild_role_delete: (Role.t * Guild.t) Pipe.Reader.t * (Role.t * Guild.t) Pipe.Writer.t;
    message_create: Message.t Pipe.Reader.t * Message.t Pipe.Writer.t;
    message_update: Message.t Pipe.Reader.t * Message.t Pipe.Writer.t;
    message_delete: Message.t Pipe.Reader.t * Message.t Pipe.Writer.t;
    message_bulk_delete: (Message.t list) Pipe.Reader.t * (Message.t list) Pipe.Writer.t;
    message_reaction_add: (Message.t * Reaction.t) Pipe.Reader.t * (Message.t * Reaction.t) Pipe.Writer.t;
    message_reaction_remove: (Message.t * Reaction.t) Pipe.Reader.t * (Message.t * Reaction.t) Pipe.Writer.t;
    message_reaction_remove_all: (Message.t * Reaction.t) Pipe.Reader.t * (Message.t * Reaction.t) Pipe.Writer.t;
    presence_update: Presence.t Pipe.Reader.t * Presence.t Pipe.Writer.t;
    typing_start: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t;
    user_update: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t;
    voice_state_update: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t;
    voice_server_update: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t;
    webhooks_update: Yojson.Basic.json Pipe.Reader.t * Yojson.Basic.json Pipe.Writer.t;
}

let dispatcher =
    {
        hello = Pipe.create ();
        ready = Pipe.create ();
        resumed = Pipe.create ();
        invalid_session = Pipe.create ();
        channel_create = Pipe.create ();
        channel_update = Pipe.create ();
        channel_delete = Pipe.create ();
        channel_pins_update = Pipe.create ();
        guild_create = Pipe.create ();
        guild_update = Pipe.create ();
        guild_delete = Pipe.create ();
        guild_ban_add = Pipe.create ();
        guild_ban_remove = Pipe.create ();
        guild_emojis_update = Pipe.create ();
        guild_integrations_update = Pipe.create ();
        guild_member_add = Pipe.create ();
        guild_member_remove = Pipe.create ();
        guild_member_update = Pipe.create ();
        guild_members_chunk = Pipe.create ();
        guild_role_create = Pipe.create ();
        guild_role_update = Pipe.create ();
        guild_role_delete = Pipe.create ();
        message_create = Pipe.create ();
        message_update = Pipe.create ();
        message_delete = Pipe.create ();
        message_bulk_delete = Pipe.create ();
        message_reaction_add = Pipe.create ();
        message_reaction_remove = Pipe.create ();
        message_reaction_remove_all = Pipe.create ();
        presence_update = Pipe.create ();
        typing_start = Pipe.create ();
        user_update = Pipe.create ();
        voice_state_update = Pipe.create ();
        voice_server_update = Pipe.create ();
        webhooks_update = Pipe.create ();
    }

(* let write (ev:Event.t) =
    let (read, _) = match ev with
    | HELLO -> dispatcher.hello
    | READY -> dispatcher.ready
    | RESUMED -> dispatcher.resumed
    | INVALID_SESSION -> dispatcher.invalid_session
    | CHANNEL_CREATE -> dispatcher.channel_create
    | CHANNEL_UPDATE -> dispatcher.channel_update
    | CHANNEL_DELETE -> dispatcher.channel_delete
    | CHANNEL_PINS_UPDATE -> dispatcher.channel_pins_update
    | GUILD_CREATE -> dispatcher.guild_create
    | GUILD_UPDATE -> dispatcher.guild_update
    | GUILD_DELETE -> dispatcher.guild_delete
    | GUILD_BAN_ADD -> dispatcher.guild_ban_add
    | GUILD_BAN_REMOVE -> dispatcher.guild_ban_remove
    | GUILD_EMOJIS_UPDATE -> dispatcher.guild_emojis_update
    | GUILD_INTEGRATIONS_UPDATE -> dispatcher.guild_integrations_update
    | GUILD_MEMBER_ADD -> dispatcher.guild_member_ad
    | GUILD_MEMBER_REMOVE -> dispatcher.guild_member_remove
    | GUILD_MEMBER_UPDATE -> dispatcher.guild_member_update
    | GUILD_MEMBERS_CHUNK -> dispatcher.guild_members_chunk
    | GUILD_ROLE_CREATE -> dispatcher.guild_role_create
    | GUILD_ROLE_UPDATE -> dispatcher.guild_role_updatE
    | GUILD_ROLE_DELETE -> dispatcher.guild_role_delete
    | MESSAGE_CREATE -> dispatcher.message_create
    | MESSAGE_UPDATE -> dispatcher.message_update
    | MESSAGE_DELETE -> dispatcher.message_delete
    | MESSAGE_BULK_DELETE -> dispatcher.message_bulk_delete
    | MESSAGE_REACTION_ADD -> dispatcher.message_reaction_add
    | MESSAGE_REACTION_REMOVE -> dispatcher.message_reaction_remove
    | MESSAGE_REACTION_REMOVE_ALL -> dispatcher.message_reaction_remove_all
    | PRESENCE_UPDATE -> dispatcher.presence_update
    | TYPING_START -> dispatcher.typing_start
    | USER_UPDATE -> dispatcher.user_update
    | VOICE_STATE_UPDATE -> dispatcher.voice_state_update
    | VOICE_SERVER_UPDATE -> dispatcher.voice_server_update
    | WEBHOOKS_UPDATE -> dispatcher.webhooks_update *)