From bcd16dddb8cc3086a13524c79676f3a8bebbc524 Mon Sep 17 00:00:00 2001 From: Zeyla Hellyer Date: Sat, 16 Dec 2017 08:39:36 -0800 Subject: 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}; ``` --- tests/test_channels.rs | 2 +- tests/test_create_embed.rs | 2 +- tests/test_decode_role.rs | 2 +- tests/test_deser.rs | 3 +-- tests/test_formatters.rs | 2 +- tests/test_message.rs | 2 +- tests/test_msg_builder.rs | 5 ++--- tests/test_user.rs | 3 ++- 8 files changed, 10 insertions(+), 11 deletions(-) (limited to 'tests') diff --git a/tests/test_channels.rs b/tests/test_channels.rs index 86523dc..b2a024e 100644 --- a/tests/test_channels.rs +++ b/tests/test_channels.rs @@ -6,7 +6,7 @@ extern crate serenity; #[cfg(feature = "utils")] mod utils { use parking_lot::RwLock; - use serenity::model::*; + use serenity::model::prelude::*; use std::collections::HashMap; use std::sync::Arc; diff --git a/tests/test_create_embed.rs b/tests/test_create_embed.rs index dd84154..43e4bb9 100644 --- a/tests/test_create_embed.rs +++ b/tests/test_create_embed.rs @@ -6,7 +6,7 @@ extern crate serde_json; extern crate serenity; use serde_json::Value; -use serenity::model::{Embed, EmbedField, EmbedImage}; +use serenity::model::channel::{Embed, EmbedField, EmbedImage}; use serenity::utils::builder::CreateEmbed; use serenity::utils::{self, Colour}; diff --git a/tests/test_decode_role.rs b/tests/test_decode_role.rs index 07ba6ed..3acb2d0 100644 --- a/tests/test_decode_role.rs +++ b/tests/test_decode_role.rs @@ -2,7 +2,7 @@ extern crate serde_json; extern crate serenity; use serde_json::Value; -use serenity::model::{Guild, Role}; +use serenity::model::guild::{Guild, Role}; #[test] fn decode_negative_one_role_position() { diff --git a/tests/test_deser.rs b/tests/test_deser.rs index 4d6c176..b17fe3c 100644 --- a/tests/test_deser.rs +++ b/tests/test_deser.rs @@ -4,8 +4,7 @@ extern crate serenity; use serde::de::Deserialize; use serde_json::Value; -use serenity::model::event::*; -use serenity::model::*; +use serenity::model::prelude::*; use std::fs::File; macro_rules! p { diff --git a/tests/test_formatters.rs b/tests/test_formatters.rs index fbc60ca..e44c550 100644 --- a/tests/test_formatters.rs +++ b/tests/test_formatters.rs @@ -1,7 +1,7 @@ extern crate parking_lot; extern crate serenity; -use serenity::model::*; +use serenity::model::prelude::*; #[test] fn test_formatters() { diff --git a/tests/test_message.rs b/tests/test_message.rs index 99125dd..71afcf5 100644 --- a/tests/test_message.rs +++ b/tests/test_message.rs @@ -4,7 +4,7 @@ extern crate serenity; use serde::de::Deserialize; use serde_json::Value; -use serenity::model::Message; +use serenity::model::channel::Message; use std::fs::File; macro_rules! p { diff --git a/tests/test_msg_builder.rs b/tests/test_msg_builder.rs index 3062fc5..e4deae4 100644 --- a/tests/test_msg_builder.rs +++ b/tests/test_msg_builder.rs @@ -4,9 +4,8 @@ extern crate serenity; use serenity::utils::MessageBuilder; use serenity::utils::ContentModifier::*; -use serenity::model::Emoji; -use serenity::model::EmojiId; -use serenity::model::UserId; +use serenity::model::guild::Emoji; +use serenity::model::id::{EmojiId, UserId}; #[test] fn code_blocks() { diff --git a/tests/test_user.rs b/tests/test_user.rs index 55973a2..267b578 100644 --- a/tests/test_user.rs +++ b/tests/test_user.rs @@ -2,7 +2,8 @@ extern crate serenity; #[cfg(feature = "model")] mod model { - use serenity::model::{User, UserId}; + use serenity::model::id::UserId; + use serenity::model::user::User; fn gen() -> User { User { -- cgit v1.2.3