aboutsummaryrefslogtreecommitdiff
path: root/src/model
diff options
context:
space:
mode:
authorZeyla Hellyer <[email protected]>2017-06-02 08:26:24 -0700
committerZeyla Hellyer <[email protected]>2017-06-02 08:26:24 -0700
commit7a96b8a1356e50b2bff5d5e03d43361a052517c6 (patch)
treed0df182f288e959bd73f4c610c7af4f0dfacf5a8 /src/model
parentAdd User::refresh (diff)
downloadserenity-7a96b8a1356e50b2bff5d5e03d43361a052517c6.tar.xz
serenity-7a96b8a1356e50b2bff5d5e03d43361a052517c6.zip
Fix compilations across feature combinations
Diffstat (limited to 'src/model')
-rw-r--r--src/model/channel/attachment.rs2
-rw-r--r--src/model/channel/channel_id.rs15
-rw-r--r--src/model/channel/embed.rs5
-rw-r--r--src/model/channel/group.rs11
-rw-r--r--src/model/channel/guild_channel.rs16
-rw-r--r--src/model/channel/message.rs12
-rw-r--r--src/model/channel/mod.rs6
-rw-r--r--src/model/channel/private_channel.rs3
-rw-r--r--src/model/event.rs5
-rw-r--r--src/model/guild/emoji.rs6
-rw-r--r--src/model/guild/guild_id.rs9
-rw-r--r--src/model/guild/member.rs11
-rw-r--r--src/model/guild/mod.rs5
-rw-r--r--src/model/guild/role.rs8
-rw-r--r--src/model/invite.rs6
-rw-r--r--src/model/misc.rs8
-rw-r--r--src/model/user.rs7
-rw-r--r--src/model/webhook.rs6
18 files changed, 84 insertions, 57 deletions
diff --git a/src/model/channel/attachment.rs b/src/model/channel/attachment.rs
index b7f371b..54b84ea 100644
--- a/src/model/channel/attachment.rs
+++ b/src/model/channel/attachment.rs
@@ -1,6 +1,8 @@
#[cfg(feature="model")]
use hyper::Client as HyperClient;
+#[cfg(feature="model")]
use std::io::Read;
+#[cfg(feature="model")]
use ::internal::prelude::*;
/// A file uploaded with a message. Not to be confused with [`Embed`]s.
diff --git a/src/model/channel/channel_id.rs b/src/model/channel/channel_id.rs
index 086f749..de907b0 100644
--- a/src/model/channel/channel_id.rs
+++ b/src/model/channel/channel_id.rs
@@ -1,15 +1,16 @@
-use std::fmt::{Display, Formatter, Result as FmtResult, Write as FmtWrite};
-use std::io::Read;
+use std::fmt::{Display, Formatter, Result as FmtResult};
use ::model::*;
#[cfg(feature="model")]
+use std::fmt::Write as FmtWrite;
+#[cfg(feature="model")]
+use std::io::Read;
+#[cfg(feature="model")]
use ::builder::{CreateMessage, EditChannel, GetMessages};
#[cfg(feature="cache")]
use ::CACHE;
#[cfg(feature="model")]
-use ::http;
-#[cfg(feature="model")]
-use ::http::AttachmentType;
+use ::http::{self, AttachmentType};
#[cfg(feature="model")]
impl ChannelId {
@@ -435,12 +436,12 @@ impl ChannelId {
/// use serenity::model::ChannelId;
///
/// let channel_id = ChannelId(7);
- ///
+ ///
/// let paths = vec!["/path/to/file.jpg", "path/to/file2.jpg"];
///
/// let _ = channel_id.send_files(paths, |m| m.content("a file"));
/// ```
- ///
+ ///
/// Send files using `File`:
///
/// ```rust,no_run
diff --git a/src/model/channel/embed.rs b/src/model/channel/embed.rs
index 9e35ea5..0db22ef 100644
--- a/src/model/channel/embed.rs
+++ b/src/model/channel/embed.rs
@@ -1,8 +1,7 @@
-use ::internal::prelude::*;
-
#[cfg(feature="utils")]
use ::utils::Colour;
-
+#[cfg(feature="model")]
+use ::internal::prelude::*;
#[cfg(feature="model")]
use ::builder::CreateEmbed;
diff --git a/src/model/channel/group.rs b/src/model/channel/group.rs
index 6adedc6..ca4d48f 100644
--- a/src/model/channel/group.rs
+++ b/src/model/channel/group.rs
@@ -1,14 +1,15 @@
+use ::model::*;
+
+#[cfg(feature="model")]
use std::borrow::Cow;
+#[cfg(feature="model")]
use std::fmt::Write as FmtWrite;
+#[cfg(feature="model")]
use std::io::Read;
-use ::model::*;
-
#[cfg(feature="model")]
use ::builder::{CreateMessage, GetMessages};
#[cfg(feature="model")]
-use ::http;
-#[cfg(feature="model")]
-use ::http::AttachmentType;
+use ::http::{self, AttachmentType};
/// A group channel - potentially including other [`User`]s - separate from a
/// [`Guild`].
diff --git a/src/model/channel/guild_channel.rs b/src/model/channel/guild_channel.rs
index 192206e..f51276c 100644
--- a/src/model/channel/guild_channel.rs
+++ b/src/model/channel/guild_channel.rs
@@ -1,17 +1,19 @@
-use std::fmt::{Display, Formatter, Result as FmtResult};
-use std::io::Read;
-use std::mem;
-use ::internal::prelude::*;
use ::model::*;
#[cfg(feature="model")]
-use ::builder::{CreateInvite, CreateMessage, EditChannel, GetMessages};
+use std::fmt::{Display, Formatter, Result as FmtResult};
+#[cfg(feature="model")]
+use std::io::Read;
+#[cfg(feature="model")]
+use std::mem;
#[cfg(feature="cache")]
use ::CACHE;
#[cfg(feature="model")]
-use ::http;
+use ::builder::{CreateInvite, CreateMessage, EditChannel, GetMessages};
#[cfg(feature="model")]
-use ::http::AttachmentType;
+use ::http::{self, AttachmentType};
+#[cfg(feature="cache")]
+use ::internal::prelude::*;
#[cfg(all(feature="model", feature="utils"))]
use ::utils as serenity_utils;
diff --git a/src/model/channel/message.rs b/src/model/channel/message.rs
index f9bc598..da64086 100644
--- a/src/model/channel/message.rs
+++ b/src/model/channel/message.rs
@@ -1,16 +1,18 @@
-use std::mem;
-use time;
-use ::constants;
use ::model::*;
-
#[cfg(feature="cache")]
use std::fmt::Write;
#[cfg(feature="model")]
+use std::mem;
+#[cfg(feature="model")]
+use time;
+#[cfg(feature="model")]
use ::builder::{CreateEmbed, CreateMessage};
+#[cfg(feature="model")]
+use ::constants;
#[cfg(feature="cache")]
use ::CACHE;
-#[cfg(feature="http")]
+#[cfg(feature="model")]
use ::http;
/// A representation of a message over a guild's text channel, a group, or a
diff --git a/src/model/channel/mod.rs b/src/model/channel/mod.rs
index 93ce5cb..269b702 100644
--- a/src/model/channel/mod.rs
+++ b/src/model/channel/mod.rs
@@ -18,12 +18,14 @@ pub use self::reaction::*;
use serde::de::Error as DeError;
use serde_json;
-use std::fmt::{Display, Formatter, Result as FmtResult};
-use std::io::Read;
use super::utils::deserialize_u64;
use ::model::*;
#[cfg(feature="model")]
+use std::fmt::{Display, Formatter, Result as FmtResult};
+#[cfg(feature="model")]
+use std::io::Read;
+#[cfg(feature="model")]
use ::builder::{CreateMessage, GetMessages};
#[cfg(feature="model")]
use ::http::AttachmentType;
diff --git a/src/model/channel/private_channel.rs b/src/model/channel/private_channel.rs
index 0432683..ba90185 100644
--- a/src/model/channel/private_channel.rs
+++ b/src/model/channel/private_channel.rs
@@ -1,9 +1,10 @@
use std::fmt::{Display, Formatter, Result as FmtResult};
-use std::io::Read;
use super::deserialize_single_recipient;
use ::model::*;
#[cfg(feature="model")]
+use std::io::Read;
+#[cfg(feature="model")]
use ::builder::{CreateMessage, GetMessages};
#[cfg(feature="model")]
use ::http::AttachmentType;
diff --git a/src/model/event.rs b/src/model/event.rs
index 26f7e70..6458b77 100644
--- a/src/model/event.rs
+++ b/src/model/event.rs
@@ -5,10 +5,12 @@ use serde_json::{self, Error as JsonError};
use std::collections::HashMap;
use super::utils::deserialize_emojis;
use super::*;
-use ::constants::{OpCode, VoiceOpCode};
+use ::constants::VoiceOpCode;
use ::internal::prelude::*;
#[cfg(feature="gateway")]
+use ::constants::OpCode;
+#[cfg(feature="gateway")]
use ::gateway::GatewayError;
/// Event data for the channel creation event.
@@ -617,6 +619,7 @@ pub enum Event {
impl Event {
#[allow(cyclomatic_complexity)]
+ #[cfg(feature="gateway")]
fn decode(kind: String, value: Value) -> Result<Event> {
Ok(match &kind[..] {
"CHANNEL_CREATE" => Event::ChannelCreate(ChannelCreateEvent::deserialize(value)?),
diff --git a/src/model/guild/emoji.rs b/src/model/guild/emoji.rs
index 2de4e30..f2c7e91 100644
--- a/src/model/guild/emoji.rs
+++ b/src/model/guild/emoji.rs
@@ -1,13 +1,15 @@
use std::fmt::{Display, Formatter, Result as FmtResult, Write as FmtWrite};
-use super::super::{EmojiId, ModelError, RoleId};
+use super::super::{EmojiId, RoleId};
#[cfg(feature="cache")]
use std::mem;
+#[cfg(all(feature="cache", feature="model"))]
+use super::super::ModelError;
#[cfg(feature="cache")]
use ::CACHE;
#[cfg(feature="cache")]
use ::internal::prelude::*;
-#[cfg(feature="model")]
+#[cfg(all(feature="cache", feature="model"))]
use ::http;
#[cfg(feature="cache")]
use super::super::GuildId;
diff --git a/src/model/guild/guild_id.rs b/src/model/guild/guild_id.rs
index 6975e6d..08538b1 100644
--- a/src/model/guild/guild_id.rs
+++ b/src/model/guild/guild_id.rs
@@ -1,13 +1,14 @@
use std::fmt::{Display, Formatter, Result as FmtResult};
-use ::internal::prelude::*;
use ::model::*;
-#[cfg(feature="model")]
-use ::builder::{EditGuild, EditMember, EditRole};
#[cfg(feature="cache")]
use ::CACHE;
-#[cfg(feature="http")]
+#[cfg(feature="model")]
+use ::builder::{EditGuild, EditMember, EditRole};
+#[cfg(feature="model")]
use ::http;
+#[cfg(feature="model")]
+use ::internal::prelude::*;
#[cfg(feature="model")]
impl GuildId {
diff --git a/src/model/guild/member.rs b/src/model/guild/member.rs
index 9c00acd..99bf67b 100644
--- a/src/model/guild/member.rs
+++ b/src/model/guild/member.rs
@@ -1,17 +1,18 @@
-use std::borrow::Cow;
use std::fmt::{Display, Formatter, Result as FmtResult};
use super::deserialize_sync_user;
use ::model::*;
+#[cfg(feature="model")]
+use std::borrow::Cow;
#[cfg(feature="cache")]
use ::CACHE;
#[cfg(feature="cache")]
use ::internal::prelude::*;
-#[cfg(feature="model")]
+#[cfg(all(feature="cache", feature="model"))]
use ::http;
-#[cfg(feature="builder")]
+#[cfg(all(feature="builder", feature="cache", feature="model"))]
use ::builder::EditMember;
-#[cfg(feature="utils")]
+#[cfg(all(feature="cache", feature="model", feature="utils"))]
use ::utils::Colour;
/// Information about a member of a guild.
@@ -108,7 +109,7 @@ impl Member {
}
/// Determines the member's colour.
- #[cfg(feature="cache")]
+ #[cfg(all(feature="cache", feature="utils"))]
pub fn colour(&self) -> Option<Colour> {
let guild_id = match self.find_guild() {
Ok(guild_id) => guild_id,
diff --git a/src/model/guild/mod.rs b/src/model/guild/mod.rs
index 91f03ea..24e1881 100644
--- a/src/model/guild/mod.rs
+++ b/src/model/guild/mod.rs
@@ -17,15 +17,16 @@ pub use self::role::*;
use serde::de::Error as DeError;
use serde_json;
use super::utils::*;
-use ::constants::LARGE_THRESHOLD;
use ::model::*;
#[cfg(feature="cache")]
use ::CACHE;
-#[cfg(feature="http")]
+#[cfg(feature="model")]
use ::http;
#[cfg(feature="model")]
use ::builder::{EditGuild, EditMember, EditRole};
+#[cfg(feature="model")]
+use ::constants::LARGE_THRESHOLD;
/// A representation of a banning of a user.
#[derive(Clone, Debug, Deserialize)]
diff --git a/src/model/guild/role.rs b/src/model/guild/role.rs
index 27ae1f9..df65e61 100644
--- a/src/model/guild/role.rs
+++ b/src/model/guild/role.rs
@@ -4,12 +4,12 @@ use ::model::*;
#[cfg(feature="cache")]
use ::CACHE;
+#[cfg(all(feature="builder", feature="cache", feature="model"))]
+use ::builder::EditRole;
#[cfg(feature="cache")]
use ::internal::prelude::*;
-#[cfg(feature="model")]
+#[cfg(all(feature="cache", feature="model"))]
use ::http;
-#[cfg(feature="builder")]
-use ::builder::EditRole;
/// Information about a role within a guild. A role represents a set of
/// permissions, and can be attached to one or multiple users. A role has
@@ -91,7 +91,7 @@ impl Role {
///
/// [`Role`]: struct.Role.html
/// [Manage Roles]: permissions/constant.MANAGE_ROLES.html
- #[cfg(feature="cache")]
+ #[cfg(all(feature="builder", feature="cache"))]
pub fn edit_role<F: FnOnce(EditRole) -> EditRole>(&self, f: F) -> Result<Role> {
match self.find_guild() {
Ok(guild_id) => guild_id.edit_role(self.id, f),
diff --git a/src/model/invite.rs b/src/model/invite.rs
index 1bec6ef..7b67296 100644
--- a/src/model/invite.rs
+++ b/src/model/invite.rs
@@ -1,12 +1,13 @@
use super::*;
-use ::internal::prelude::*;
#[cfg(feature="cache")]
use super::{permissions, utils as model_utils};
#[cfg(feature="model")]
+use ::builder::CreateInvite;
+#[cfg(feature="model")]
use ::http;
#[cfg(feature="model")]
-use ::builder::CreateInvite;
+use ::internal::prelude::*;
/// Information about an invite code.
///
@@ -100,6 +101,7 @@ impl Invite {
}
/// Gets the information about an invite.
+ #[allow(unused_mut)]
pub fn get(code: &str, stats: bool) -> Result<Invite> {
let mut invite = code;
diff --git a/src/model/misc.rs b/src/model/misc.rs
index 3ac8f47..768b694 100644
--- a/src/model/misc.rs
+++ b/src/model/misc.rs
@@ -1,8 +1,10 @@
-use std::result::Result as StdResult;
-use std::str::FromStr;
use super::*;
-#[cfg(feature="utils")]
+#[cfg(all(feature="model", feature="utils"))]
+use std::result::Result as StdResult;
+#[cfg(all(feature="model", feature="utils"))]
+use std::str::FromStr;
+#[cfg(any(all(feature="cache", feature="utils"), all(feature="model", feature="utils")))]
use ::utils;
/// Allows something - such as a channel or role - to be mentioned in a message.
diff --git a/src/model/user.rs b/src/model/user.rs
index 07172b6..19d0a5d 100644
--- a/src/model/user.rs
+++ b/src/model/user.rs
@@ -1,15 +1,18 @@
use serde_json;
-use std::{fmt, mem};
+use std::fmt;
use super::utils::deserialize_u16;
use super::*;
-use time::Timespec;
use ::internal::prelude::*;
use ::model::misc::Mentionable;
#[cfg(feature="model")]
use std::fmt::Write;
+#[cfg(feature="model")]
+use std::mem;
#[cfg(feature="cache")]
use std::sync::{Arc, RwLock};
+#[cfg(feature="model")]
+use time::Timespec;
#[cfg(feature="cache")]
use ::CACHE;
#[cfg(feature="model")]
diff --git a/src/model/webhook.rs b/src/model/webhook.rs
index bacfa53..9f0309f 100644
--- a/src/model/webhook.rs
+++ b/src/model/webhook.rs
@@ -1,10 +1,12 @@
-use std::mem;
use super::*;
-use ::internal::prelude::*;
#[cfg(feature="model")]
+use std::mem;
+#[cfg(feature="model")]
use ::builder::ExecuteWebhook;
#[cfg(feature="model")]
+use ::internal::prelude::*;
+#[cfg(feature="model")]
use ::http;
/// A representation of a webhook, which is a low-effort way to post messages to