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}; ``` --- src/model/user.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/model/user.rs') diff --git a/src/model/user.rs b/src/model/user.rs index 2732f2b..6068da1 100644 --- a/src/model/user.rs +++ b/src/model/user.rs @@ -1,7 +1,9 @@ +//! User information-related models. + use serde_json; use std::fmt; use super::utils::deserialize_u16; -use super::*; +use super::prelude::*; use internal::prelude::*; use model::misc::Mentionable; @@ -159,7 +161,7 @@ impl CurrentUser { /// # /// # let mut cache = CACHE.write(); /// - /// use serenity::model::permissions::Permissions; + /// use serenity::model::Permissions; /// /// // assuming the cache has been unlocked /// let url = match cache.user.invite_url(Permissions::empty()) { @@ -408,7 +410,7 @@ impl User { /// /// ```rust,no_run /// # use serenity::prelude::*; - /// # use serenity::model::*; + /// # use serenity::model::prelude::*; /// # /// use serenity::model::Permissions; /// use serenity::CACHE; @@ -611,7 +613,7 @@ impl User { /// /// ```rust,no_run /// # use serenity::prelude::*; - /// # use serenity::model::*; + /// # use serenity::model::prelude::*; /// # /// struct Handler; /// @@ -623,7 +625,7 @@ impl User { /// /// let mut client = Client::new("token", Handler).unwrap(); /// # - /// use serenity::model::UserId; + /// use serenity::model::id::UserId; /// use serenity::CACHE; /// use std::thread; /// use std::time::Duration; @@ -680,7 +682,7 @@ impl User { /// /// ```rust,no_run /// # use serenity::prelude::*; - /// # use serenity::model::*; + /// # use serenity::model::prelude::*; /// # /// use serenity::utils::MessageBuilder; /// use serenity::utils::ContentModifier::Bold; -- cgit v1.2.3