aboutsummaryrefslogtreecommitdiff
path: root/src/client
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/client
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/client')
-rw-r--r--src/client/bridge/gateway/shard_messenger.rs10
-rw-r--r--src/client/bridge/gateway/shard_runner_message.rs4
-rw-r--r--src/client/context.rs27
-rw-r--r--src/client/dispatch.rs4
-rw-r--r--src/client/event_handler.rs3
5 files changed, 25 insertions, 23 deletions
diff --git a/src/client/bridge/gateway/shard_messenger.rs b/src/client/bridge/gateway/shard_messenger.rs
index 069c838..a4b63f3 100644
--- a/src/client/bridge/gateway/shard_messenger.rs
+++ b/src/client/bridge/gateway/shard_messenger.rs
@@ -1,4 +1,4 @@
-use model::{Game, GuildId, OnlineStatus};
+use model::prelude::*;
use super::{ShardClientMessage, ShardRunnerMessage};
use std::sync::mpsc::{SendError, Sender};
use websocket::message::OwnedMessage;
@@ -62,7 +62,7 @@ impl ShardMessenger {
/// #
/// # let mut shard = Shard::new(mutex.clone(), mutex, [0, 1])?;
/// #
- /// use serenity::model::GuildId;
+ /// use serenity::model::id::GuildId;
///
/// let guild_ids = vec![GuildId(81384788765712384)];
///
@@ -92,7 +92,7 @@ impl ShardMessenger {
/// #
/// # let mut shard = Shard::new(mutex.clone(), mutex, [0, 1])?;
/// #
- /// use serenity::model::GuildId;
+ /// use serenity::model::id::GuildId;
///
/// let guild_ids = vec![GuildId(81384788765712384)];
///
@@ -146,7 +146,7 @@ impl ShardMessenger {
/// #
/// # let mut shard = Shard::new(mutex.clone(), mutex, [0, 1]).unwrap();
/// #
- /// use serenity::model::Game;
+ /// use serenity::model::gateway::Game;
///
/// shard.set_game(Some(Game::playing("Heroes of the Storm")));
/// # Ok(())
@@ -227,7 +227,7 @@ impl ShardMessenger {
/// #
/// # let mut shard = Shard::new(mutex.clone(), mutex, [0, 1]).unwrap();
/// #
- /// use serenity::model::OnlineStatus;
+ /// use serenity::model::user::OnlineStatus;
///
/// shard.set_status(OnlineStatus::DoNotDisturb);
/// # Ok(())
diff --git a/src/client/bridge/gateway/shard_runner_message.rs b/src/client/bridge/gateway/shard_runner_message.rs
index e6458eb..5c5512d 100644
--- a/src/client/bridge/gateway/shard_runner_message.rs
+++ b/src/client/bridge/gateway/shard_runner_message.rs
@@ -1,4 +1,6 @@
-use model::{Game, GuildId, OnlineStatus};
+use model::gateway::Game;
+use model::user::OnlineStatus;
+use model::id::GuildId;
use websocket::message::OwnedMessage;
/// A message to send from a shard over a WebSocket.
diff --git a/src/client/context.rs b/src/client/context.rs
index 2be1d99..b15e172 100644
--- a/src/client/context.rs
+++ b/src/client/context.rs
@@ -1,5 +1,5 @@
use client::bridge::gateway::{ShardClientMessage, ShardMessenger};
-use model::*;
+use model::prelude::*;
use parking_lot::Mutex;
use std::sync::mpsc::Sender;
use std::sync::Arc;
@@ -68,7 +68,7 @@ impl Context {
///
/// ```rust,no_run
/// # use serenity::prelude::*;
- /// # use serenity::model::*;
+ /// # use serenity::model::channel::Message;
/// #
/// struct Handler;
///
@@ -122,7 +122,7 @@ impl Context {
///
/// ```rust,no_run
/// # use serenity::prelude::*;
- /// # use serenity::model::*;
+ /// # use serenity::model::channel::Message;
/// #
/// struct Handler;
///
@@ -154,7 +154,7 @@ impl Context {
///
/// ```rust,no_run
/// # use serenity::prelude::*;
- /// # use serenity::model::*;
+ /// # use serenity::model::channel::Message;
/// #
/// struct Handler;
///
@@ -185,7 +185,7 @@ impl Context {
///
/// ```rust,no_run
/// # use serenity::prelude::*;
- /// # use serenity::model::*;
+ /// # use serenity::model::channel::Message;
/// #
/// struct Handler;
///
@@ -217,7 +217,7 @@ impl Context {
///
/// ```rust,no_run
/// # use serenity::prelude::*;
- /// # use serenity::model::*;
+ /// # use serenity::model::gateway::Ready;
/// #
/// struct Handler;
///
@@ -284,9 +284,9 @@ impl Context {
/// # #[cfg(feature = "model")]
/// # fn main() {
/// # use serenity::prelude::*;
- /// # use serenity::model::*;
+ /// # use serenity::model::channel::Message;
/// #
- /// use serenity::model::Game;
+ /// use serenity::model::gateway::Game;
///
/// struct Handler;
///
@@ -332,7 +332,7 @@ impl Context {
///
/// ```rust,no_run
/// # use serenity::prelude::*;
- /// # use serenity::model::*;
+ /// # use serenity::model::gateway::Ready;
/// #
/// struct Handler;
///
@@ -371,13 +371,13 @@ impl Context {
///
/// ```rust,no_run
/// # use serenity::prelude::*;
- /// # use serenity::model::*;
+ /// # use serenity::model::gateway::Ready;
/// #
/// struct Handler;
///
/// impl EventHandler for Handler {
/// fn ready(&self, ctx: Context, _: Ready) {
- /// use serenity::model::OnlineStatus;
+ /// use serenity::model::user::OnlineStatus;
///
/// ctx.set_presence(None, OnlineStatus::Idle);
/// }
@@ -392,13 +392,14 @@ impl Context {
///
/// ```rust,ignore
/// # use serenity::prelude::*;
- /// # use serenity::model::*;
+ /// # use serenity::model::gateway::Ready;
/// #
/// struct Handler;
///
/// impl EventHandler for Handler {
/// fn ready(&self, context: Context, _: Ready) {
- /// use serenity::model::{Game, OnlineStatus};
+ /// use serenity::model::gateway::Game;
+ /// use serenity::model::user::OnlineStatus;
///
/// let game = Game::playing("Heroes of the Storm");
/// let status = OnlineStatus::DoNotDisturb;
diff --git a/src/client/dispatch.rs b/src/client/dispatch.rs
index f79203c..ce1af3d 100644
--- a/src/client/dispatch.rs
+++ b/src/client/dispatch.rs
@@ -1,5 +1,5 @@
use model::event::Event;
-use model::{Channel, Message};
+use model::channel::{Channel, Message};
use std::sync::Arc;
use parking_lot::Mutex;
use super::bridge::gateway::ShardClientMessage;
@@ -14,7 +14,7 @@ use chrono::{Timelike, Utc};
#[cfg(feature = "framework")]
use framework::Framework;
#[cfg(feature = "cache")]
-use model::GuildId;
+use model::id::GuildId;
#[cfg(feature = "cache")]
use std::{thread, time};
diff --git a/src/client/event_handler.rs b/src/client/event_handler.rs
index fe13a7a..d5bd035 100644
--- a/src/client/event_handler.rs
+++ b/src/client/event_handler.rs
@@ -1,5 +1,4 @@
-use model::event::*;
-use model::*;
+use model::prelude::*;
use parking_lot::RwLock;
use serde_json::Value;
use std::collections::HashMap;