From 7c9b809078b5cd53e3d54c0004c683da2ec679af Mon Sep 17 00:00:00 2001 From: Adelyn Breedlove Date: Mon, 11 Feb 2019 17:23:59 +0000 Subject: Add a cache --- lib/cache.ml | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 lib/cache.ml (limited to 'lib/cache.ml') diff --git a/lib/cache.ml b/lib/cache.ml new file mode 100644 index 0000000..50d431c --- /dev/null +++ b/lib/cache.ml @@ -0,0 +1,38 @@ +open Async +open Core + +module ChannelMap = Map.Make(Channel_id_t) +module GuildMap = Map.Make(Guild_id_t) +module UserMap = Map.Make(User_id_t) + +type t = { + text_channels: Channel_t.guild_text ChannelMap.t; + voice_channels: Channel_t.guild_voice ChannelMap.t; + categories: Channel_t.category ChannelMap.t; + groups: Channel_t.group ChannelMap.t; + private_channels: Channel_t.dm ChannelMap.t; + guilds: Guild_t.t GuildMap.t; + presences: Presence.t UserMap.t; + (* messages: Channel_id_t.t GuildMap.t; *) + unavailable_guilds: Guild_t.unavailable GuildMap.t; + user: User_t.t option; + users: User_t.t UserMap.t; +} + +let create () = { + text_channels = ChannelMap.empty; + voice_channels = ChannelMap.empty; + categories = ChannelMap.empty; + groups = ChannelMap.empty; + private_channels = ChannelMap.empty; + guilds = GuildMap.empty; + presences = UserMap.empty; + unavailable_guilds = GuildMap.empty; + user = None; + users = UserMap.empty; + } + +let cache = + let m = Mvar.create () in + Mvar.set m (create ()); + m \ No newline at end of file -- cgit v1.2.3