summaryrefslogtreecommitdiff
path: root/src/util.rs
diff options
context:
space:
mode:
authorNathan Perry <avaglir@gmail.com>2018-02-14 00:48:06 -0500
committerNathan Perry <avaglir@gmail.com>2018-02-14 00:48:06 -0500
commit1fc46f84d9d9ea3efcfa5aaf6cac90dae8e9c8b4 (patch)
tree055daed9052d73c6f6d5fa6f0c6a66e9e90de3db /src/util.rs
parent04da3bc579466e7fae48c3df2dbc17ed3b7d4a52 (diff)
initial commands implemented
Diffstat (limited to 'src/util.rs')
-rw-r--r--src/util.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/util.rs b/src/util.rs
index 6f70037..54f10ee 100644
--- a/src/util.rs
+++ b/src/util.rs
@@ -1,6 +1,11 @@
use std::env;
+use std::str::FromStr;
use serenity::model::permissions::Permissions;
+use serenity::model::id::GuildId;
+use serenity::model::channel::Message;
+use serenity::client::CACHE;
+
use url::Url;
lazy_static! {
@@ -26,3 +31,18 @@ lazy_static! {
)
).unwrap();
}
+
+pub fn must_env_lookup<T: FromStr>(s: &str) -> T {
+ env::var(s).expect(&format!("missing env var {}", s))
+ .parse::<T>().unwrap_or_else(|_| panic!(format!("bad format for {}", s)))
+}
+
+pub trait GuildLookup {
+ fn guild_id(&self) -> Option<GuildId>;
+}
+
+impl GuildLookup for Message {
+ fn guild_id(&self) -> Option<GuildId> {
+ CACHE.read().guild_channel(self.channel_id).map(|c| c.read().guild_id)
+ }
+} \ No newline at end of file