summaryrefslogtreecommitdiff
path: root/src/util.rs
diff options
context:
space:
mode:
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