aboutsummaryrefslogtreecommitdiff
path: root/src/utils
diff options
context:
space:
mode:
authorZeyla Hellyer <[email protected]>2017-12-16 08:39:36 -0800
committerZeyla Hellyer <[email protected]>2017-12-16 08:45:26 -0800
commitbcd16dddb8cc3086a13524c79676f3a8bebbc524 (patch)
tree42d254fb4738df957c4b7d9e5766d1cb5bd47323 /src/utils
parentFix guild deserialization tests (diff)
downloadserenity-bcd16dddb8cc3086a13524c79676f3a8bebbc524.tar.xz
serenity-bcd16dddb8cc3086a13524c79676f3a8bebbc524.zip
Break up the model module
The `model` module has historically been one giant module re-exporting all of the model types, which is somewhere around 100 types. This can be a lot to look at for a new user and somewhat overwhelming, especially with a large number of fine-grained imports from the module. The module is now neatly split up into submodules, mostly like it has been internally since the early versions of the library. The submodules are: - application - channel - error - event - gateway - guild - id - invite - misc - permissions - prelude - user - voice - webhook Each submodule contains types that are "owned" by the module. For example, the `guild` submodule contains, but not limited to, Emoji, AuditLogsEntry, Role, and Member. `channel` contains, but not limited to, Attachment, Embed, Message, and Reaction. Upgrade path: Instead of glob importing the models via `use serenity::model::*;`, instead glob import via the prelude: ```rust use serenity::model::prelude::*; ``` Instead of importing from the root model module: ```rust use serenity::model::{Guild, Message, OnlineStatus, Role, User}; ``` instead import from the submodules like so: ```rust use serenity::model::channel::Message; use serenity::model::guild::{Guild, Role}; use serenity::model::user::{OnlineStatus, User}; ```
Diffstat (limited to 'src/utils')
-rw-r--r--src/utils/colour.rs7
-rw-r--r--src/utils/message_builder.rs13
-rw-r--r--src/utils/mod.rs6
3 files changed, 17 insertions, 9 deletions
diff --git a/src/utils/colour.rs b/src/utils/colour.rs
index 4e612cc..c59f4be 100644
--- a/src/utils/colour.rs
+++ b/src/utils/colour.rs
@@ -28,8 +28,9 @@ macro_rules! colour {
/// via [`g`]:
///
/// ```rust
-/// # use serenity::model::{Role, RoleId, permissions};
-/// use serenity::utils::Colour;
+/// # use serenity::model::guild::Role;
+/// # use serenity::model::id::RoleId;
+/// # use serenity::model::permissions;
/// #
/// # let role = Role {
/// # colour: Colour::blurple(),
@@ -41,6 +42,8 @@ macro_rules! colour {
/// # permissions: permissions::PRESET_GENERAL,
/// # position: 7,
/// # };
+/// #
+/// use serenity::utils::Colour;
///
/// // assuming a `role` has already been bound
///
diff --git a/src/utils/message_builder.rs b/src/utils/message_builder.rs
index 79b6123..f94b3fd 100644
--- a/src/utils/message_builder.rs
+++ b/src/utils/message_builder.rs
@@ -1,4 +1,6 @@
-use model::{ChannelId, Emoji, Mentionable, RoleId, UserId};
+use model::guild::Emoji;
+use model::id::{ChannelId, RoleId, UserId};
+use model::misc::Mentionable;
use std::default::Default;
use std::fmt::{self, Display, Write};
use std::ops::Add;
@@ -14,7 +16,7 @@ use std::ops::Add;
/// value:
///
/// ```rust,no_run
-/// # use serenity::model::{Emoji, EmojiId, UserId};
+/// # use serenity::model::prelude::*;
/// #
/// # let user = UserId(1);
/// # let emoji = Emoji {
@@ -68,7 +70,7 @@ impl MessageBuilder {
/// and finally building it to retrieve the inner String:
///
/// ```rust
- /// use serenity::model::ChannelId;
+ /// use serenity::model::id::ChannelId;
/// use serenity::utils::MessageBuilder;
///
/// let channel_id = ChannelId(81384788765712384);
@@ -105,7 +107,7 @@ impl MessageBuilder {
/// Mentioning a [`Channel`] by Id:
///
/// ```rust
- /// use serenity::model::ChannelId;
+ /// use serenity::model::id::ChannelId;
/// use serenity::utils::MessageBuilder;
///
/// let channel_id = ChannelId(81384788765712384);
@@ -138,7 +140,8 @@ impl MessageBuilder {
/// Mention an emoji in a message's content:
///
/// ```rust
- /// use serenity::model::{Emoji, EmojiId};
+ /// use serenity::model::guild::Emoji;
+ /// use serenity::model::id::EmojiId;
/// use serenity::utils::MessageBuilder;
///
/// let emoji = Emoji {
diff --git a/src/utils/mod.rs b/src/utils/mod.rs
index 6291f81..2660798 100644
--- a/src/utils/mod.rs
+++ b/src/utils/mod.rs
@@ -13,7 +13,8 @@ pub use super::builder;
use base64;
use internal::prelude::*;
-use model::{EmojiId, EmojiIdentifier};
+use model::id::EmojiId;
+use model::misc::EmojiIdentifier;
use std::collections::HashMap;
use std::ffi::OsStr;
use std::fs::File;
@@ -267,7 +268,8 @@ pub fn parse_channel(mention: &str) -> Option<u64> {
/// Ensure that a valid [`Emoji`] usage is correctly parsed:
///
/// ```rust
-/// use serenity::model::{EmojiId, EmojiIdentifier};
+/// use serenity::model::id::{EmojiId, GuildId};
+/// use serenity::model::misc::EmojiIdentifier;
/// use serenity::utils::parse_emoji;
///
/// let expected = EmojiIdentifier {