diff options
| author | Zeyla Hellyer <[email protected]> | 2017-12-16 08:39:36 -0800 |
|---|---|---|
| committer | Zeyla Hellyer <[email protected]> | 2017-12-16 08:45:26 -0800 |
| commit | bcd16dddb8cc3086a13524c79676f3a8bebbc524 (patch) | |
| tree | 42d254fb4738df957c4b7d9e5766d1cb5bd47323 /src/client | |
| parent | Fix guild deserialization tests (diff) | |
| download | serenity-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.rs | 10 | ||||
| -rw-r--r-- | src/client/bridge/gateway/shard_runner_message.rs | 4 | ||||
| -rw-r--r-- | src/client/context.rs | 27 | ||||
| -rw-r--r-- | src/client/dispatch.rs | 4 | ||||
| -rw-r--r-- | src/client/event_handler.rs | 3 |
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; |