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/framework/standard/mod.rs | |
| 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/framework/standard/mod.rs')
| -rw-r--r-- | src/framework/standard/mod.rs | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/framework/standard/mod.rs b/src/framework/standard/mod.rs index 6f7e180..576f820 100644 --- a/src/framework/standard/mod.rs +++ b/src/framework/standard/mod.rs @@ -21,8 +21,10 @@ pub use self::create_group::CreateGroup; use client::Context; use internal::RwLockExt; -use model::{ChannelId, GuildId, Guild, Member, Message, UserId}; -use model::permissions::Permissions; +use model::channel::Message; +use model::guild::{Guild, Member}; +use model::id::{ChannelId, GuildId, UserId}; +use model::Permissions; use self::command::{AfterHook, BeforeHook}; use std::collections::HashMap; use std::default::Default; @@ -33,7 +35,7 @@ use threadpool::ThreadPool; #[cfg(feature = "cache")] use client::CACHE; #[cfg(feature = "cache")] -use model::Channel; +use model::channel::Channel; /// A macro to generate "named parameters". This is useful to avoid manually /// using the "arguments" parameter and manually parsing types. @@ -77,7 +79,7 @@ macro_rules! command { impl $crate::framework::standard::Command for $fname { #[allow(unreachable_code, unused_mut)] fn execute(&self, mut $c: &mut $crate::client::Context, - _: &$crate::model::Message, + _: &$crate::model::channel::Message, _: $crate::framework::standard::Args) -> ::std::result::Result<(), $crate::framework::standard::CommandError> { @@ -94,7 +96,7 @@ macro_rules! command { impl $crate::framework::standard::Command for $fname { #[allow(unreachable_code, unused_mut)] fn execute(&self, mut $c: &mut $crate::client::Context, - $m: &$crate::model::Message, + $m: &$crate::model::channel::Message, _: $crate::framework::standard::Args) -> ::std::result::Result<(), $crate::framework::standard::CommandError> { @@ -111,7 +113,7 @@ macro_rules! command { impl $crate::framework::standard::Command for $fname { #[allow(unreachable_code, unused_mut)] fn execute(&self, mut $c: &mut $crate::client::Context, - $m: &$crate::model::Message, + $m: &$crate::model::channel::Message, mut $a: $crate::framework::standard::Args) -> ::std::result::Result<(), $crate::framework::standard::CommandError> { @@ -1098,4 +1100,4 @@ impl fmt::Display for HelpBehaviour { HelpBehaviour::Nothing => write!(f, "HelBehaviour::Nothing"), } } -}
\ No newline at end of file +} |