aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorZeyla Hellyer <[email protected]>2017-12-16 13:24:09 -0800
committerZeyla Hellyer <[email protected]>2017-12-16 13:24:09 -0800
commit9b53582f5e5e9650abda4106124e7f9f4e78a90c (patch)
tree88bd56a75b1d110ea049abbaea88bb6e8a83dac3 /src
parentFix compilation of examples (diff)
downloadserenity-9b53582f5e5e9650abda4106124e7f9f4e78a90c.tar.xz
serenity-9b53582f5e5e9650abda4106124e7f9f4e78a90c.zip
Fix most clippy lints, take more refeernces
Fix clippy lints and subsequently accept references for more function parameters.
Diffstat (limited to 'src')
-rw-r--r--src/client/bridge/gateway/shard_manager.rs20
-rw-r--r--src/client/bridge/gateway/shard_runner.rs6
-rw-r--r--src/client/dispatch.rs89
-rw-r--r--src/client/mod.rs10
-rw-r--r--src/framework/standard/args.rs21
-rw-r--r--src/framework/standard/command.rs8
-rw-r--r--src/framework/standard/create_help_command.rs3
-rw-r--r--src/framework/standard/help_commands.rs33
-rw-r--r--src/framework/standard/mod.rs4
-rw-r--r--src/http/mod.rs2
-rw-r--r--src/model/guild/guild_id.rs3
-rw-r--r--src/model/guild/member.rs4
-rw-r--r--src/model/guild/mod.rs8
-rw-r--r--src/model/guild/partial_guild.rs2
-rw-r--r--src/utils/message_builder.rs4
-rw-r--r--src/utils/mod.rs8
16 files changed, 117 insertions, 108 deletions
diff --git a/src/client/bridge/gateway/shard_manager.rs b/src/client/bridge/gateway/shard_manager.rs
index 99cdec7..56bda7a 100644
--- a/src/client/bridge/gateway/shard_manager.rs
+++ b/src/client/bridge/gateway/shard_manager.rs
@@ -117,11 +117,11 @@ impl ShardManager {
shard_index: u64,
shard_init: u64,
shard_total: u64,
- ws_url: Arc<Mutex<String>>,
- token: Arc<Mutex<String>>,
- data: Arc<Mutex<ShareMap>>,
- event_handler: Arc<H>,
- framework: Arc<Mutex<Option<Box<Framework + Send>>>>,
+ ws_url: &Arc<Mutex<String>>,
+ token: &Arc<Mutex<String>>,
+ data: &Arc<Mutex<ShareMap>>,
+ event_handler: &Arc<H>,
+ framework: &Arc<Mutex<Option<Box<Framework + Send>>>>,
threadpool: ThreadPool,
) -> (Arc<Mutex<Self>>, ShardManagerMonitor) where H: EventHandler + Send + Sync + 'static {
let (thread_tx, thread_rx) = mpsc::channel();
@@ -130,16 +130,16 @@ impl ShardManager {
let runners = Arc::new(Mutex::new(HashMap::new()));
let mut shard_queuer = ShardQueuer {
- data: Arc::clone(&data),
- event_handler: Arc::clone(&event_handler),
- framework: Arc::clone(&framework),
+ data: Arc::clone(data),
+ event_handler: Arc::clone(event_handler),
+ framework: Arc::clone(framework),
last_start: None,
manager_tx: thread_tx.clone(),
queue: VecDeque::new(),
runners: Arc::clone(&runners),
rx: shard_queue_rx,
- token: Arc::clone(&token),
- ws_url: Arc::clone(&ws_url),
+ token: Arc::clone(token),
+ ws_url: Arc::clone(ws_url),
threadpool,
};
diff --git a/src/client/bridge/gateway/shard_runner.rs b/src/client/bridge/gateway/shard_runner.rs
index 6ca73eb..a682693 100644
--- a/src/client/bridge/gateway/shard_runner.rs
+++ b/src/client/bridge/gateway/shard_runner.rs
@@ -143,7 +143,7 @@ impl<H: EventHandler + Send + Sync + 'static> ShardRunner<H> {
let (event, action, successful) = self.recv_event();
- if let Some(action) = action {
+ if let Some(ref action) = action {
let _ = self.action(action);
}
@@ -171,8 +171,8 @@ impl<H: EventHandler + Send + Sync + 'static> ShardRunner<H> {
/// # Errors
///
/// Returns
- fn action(&mut self, action: ShardAction) -> Result<()> {
- match action {
+ fn action(&mut self, action: &ShardAction) -> Result<()> {
+ match *action {
ShardAction::Autoreconnect => self.shard.autoreconnect(),
ShardAction::Heartbeat => self.shard.heartbeat(),
ShardAction::Identify => self.shard.identify(),
diff --git a/src/client/dispatch.rs b/src/client/dispatch.rs
index ce1af3d..01e7c4b 100644
--- a/src/client/dispatch.rs
+++ b/src/client/dispatch.rs
@@ -42,10 +42,11 @@ fn context(
runner_tx: &Sender<ShardClientMessage>,
shard_id: u64,
) -> Context {
- Context::new(Arc::clone(&data), runner_tx.clone(), shard_id)
+ Context::new(Arc::clone(data), runner_tx.clone(), shard_id)
}
#[cfg(feature = "framework")]
+#[cfg_attr(feature = "cargo-clippy", allow(too_many_arguments))]
pub fn dispatch<H: EventHandler + Send + Sync + 'static>(
event: Event,
framework: &Arc<Mutex<Option<Box<Framework + Send>>>>,
@@ -117,7 +118,7 @@ fn dispatch_message<H>(
message.transform_content();
}
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.message(context, message);
@@ -158,7 +159,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
// So in short, only exists to reduce unnecessary clutter.
match event.channel {
Channel::Private(channel) => {
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.private_channel_create(context, channel);
@@ -166,14 +167,14 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
},
Channel::Group(_) => {},
Channel::Guild(channel) => {
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.channel_create(context, channel);
});
},
Channel::Category(channel) => {
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.category_create(context, channel);
@@ -189,14 +190,14 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
match event.channel {
Channel::Private(_) | Channel::Group(_) => {},
Channel::Guild(channel) => {
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.channel_delete(context, channel);
});
},
Channel::Category(channel) => {
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.category_delete(context, channel);
@@ -206,7 +207,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
},
Event::ChannelPinsUpdate(mut event) => {
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.channel_pins_update(context, event);
@@ -217,7 +218,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.channel_recipient_addition(
@@ -231,7 +232,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
update!(event);
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.channel_recipient_removal(
@@ -245,7 +246,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
update!(event);
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
feature_cache! {{
@@ -259,7 +260,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
},
Event::GuildBanAdd(mut event) => {
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.guild_ban_addition(context, event.guild_id, event.user);
@@ -267,7 +268,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
},
Event::GuildBanRemove(mut event) => {
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.guild_ban_removal(context, event.guild_id, event.user);
@@ -297,7 +298,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
.iter()
.map(|(&id, _)| id)
.collect::<Vec<GuildId>>();
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.cached(context, guild_amount);
@@ -306,7 +307,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
}
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
feature_cache! {{
@@ -319,7 +320,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
Event::GuildDelete(mut event) => {
let _full = update!(event);
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
feature_cache! {{
@@ -333,7 +334,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
update!(event);
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.guild_emojis_update(context, event.guild_id, event.emojis);
@@ -341,7 +342,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
},
Event::GuildIntegrationsUpdate(mut event) => {
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.guild_integrations_update(context, event.guild_id);
@@ -351,7 +352,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
update!(event);
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.guild_member_addition(context, event.guild_id, event.member);
@@ -360,7 +361,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
Event::GuildMemberRemove(mut event) => {
let _member = update!(event);
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
feature_cache! {{
@@ -373,7 +374,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
Event::GuildMemberUpdate(mut event) => {
let _before = update!(event);
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
feature_cache! {{
@@ -395,7 +396,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
update!(event);
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.guild_members_chunk(context, event.guild_id, event.members);
@@ -405,7 +406,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
update!(event);
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.guild_role_create(context, event.guild_id, event.role);
@@ -414,7 +415,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
Event::GuildRoleDelete(mut event) => {
let _role = update!(event);
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
feature_cache! {{
@@ -427,7 +428,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
Event::GuildRoleUpdate(mut event) => {
let _before = update!(event);
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
feature_cache! {{
@@ -441,7 +442,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
update!(event);
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.guild_unavailable(context, event.guild_id);
@@ -451,7 +452,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
update!(event);
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
feature_cache! {{
@@ -470,7 +471,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
Event::MessageCreate(_) => {},
Event::MessageDeleteBulk(mut event) => {
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.message_delete_bulk(context, event.channel_id, event.ids);
@@ -478,7 +479,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
},
Event::MessageDelete(mut event) => {
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.message_delete(context, event.channel_id, event.message_id);
@@ -486,7 +487,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
},
Event::MessageUpdate(mut event) => {
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.message_update(context, event);
@@ -496,7 +497,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
update!(event);
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.presence_replace(context, event.presences);
@@ -506,7 +507,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
update!(event);
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.presence_update(context, event);
@@ -514,7 +515,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
},
Event::ReactionAdd(mut event) => {
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.reaction_add(context, event.reaction);
@@ -522,7 +523,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
},
Event::ReactionRemove(mut event) => {
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.reaction_remove(context, event.reaction);
@@ -530,7 +531,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
},
Event::ReactionRemoveAll(mut event) => {
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.reaction_remove_all(context, event.channel_id, event.message_id);
@@ -539,14 +540,14 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
Event::Ready(mut event) => {
update!(event);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
feature_cache! {{
last_guild_create_time = now!();
let _ = wait_for_guilds()
.map(move |_| {
- let context = context(data, &runner_tx, shard_id);
+ let context = context(data, runner_tx, shard_id);
let event_handler = Arc::clone(&event_handler);
threadpool.execute(move || {
@@ -555,7 +556,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
});
} else {
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.ready(context, event.ready);
@@ -569,7 +570,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
},
Event::TypingStart(mut event) => {
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.typing_start(context, event);
@@ -577,7 +578,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
},
Event::Unknown(mut event) => {
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.unknown(context, event.kind, event.value);
@@ -586,7 +587,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
Event::UserUpdate(mut event) => {
let _before = update!(event);
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
feature_cache! {{
@@ -598,7 +599,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
},
Event::VoiceServerUpdate(mut event) => {
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.voice_server_update(context, event);
@@ -608,7 +609,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
update!(event);
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.voice_state_update(context, event.guild_id, event.voice_state);
@@ -616,7 +617,7 @@ fn handle_event<H: EventHandler + Send + Sync + 'static>(
},
Event::WebhookUpdate(mut event) => {
let context = context(data, runner_tx, shard_id);
- let event_handler = Arc::clone(&event_handler);
+ let event_handler = Arc::clone(event_handler);
threadpool.execute(move || {
event_handler.webhook_update(context, event.guild_id, event.channel_id);
diff --git a/src/client/mod.rs b/src/client/mod.rs
index 8babece..57fa90e 100644
--- a/src/client/mod.rs
+++ b/src/client/mod.rs
@@ -341,11 +341,11 @@ impl Client {
0,
0,
0,
- Arc::clone(&url),
- Arc::clone(&locked),
- Arc::clone(&data),
- Arc::clone(&event_handler),
- Arc::clone(&framework),
+ &url,
+ &locked,
+ &data,
+ &event_handler,
+ &framework,
threadpool.clone(),
);
diff --git a/src/framework/standard/args.rs b/src/framework/standard/args.rs
index e9c6365..f18b012 100644
--- a/src/framework/standard/args.rs
+++ b/src/framework/standard/args.rs
@@ -55,7 +55,7 @@ fn second_quote_occurence(s: &str) -> Option<usize> {
s.chars().enumerate().filter(|&(_, c)| c == '"').nth(1).map(|(pos, _)| pos)
}
-fn parse_quotes<T: FromStr>(s: &mut String, delimiter: &str) -> Result<T, T::Err>
+fn parse_quotes<T: FromStr>(s: &mut String, delimiter: &str) -> Result<T, T::Err>
where T::Err: StdError {
// Fall back to `parse` if there're no quotes at the start.
@@ -63,28 +63,28 @@ fn parse_quotes<T: FromStr>(s: &mut String, delimiter: &str) -> Result<T, T::Err
return parse::<T>(s, delimiter);
}
- let mut pos = second_quote_occurence(&s).unwrap_or(s.len());
+ let mut pos = second_quote_occurence(s).unwrap_or_else(|| s.len());
let res = (&s[1..pos]).parse::<T>().map_err(Error::Parse);
// +1 is for the quote
if pos < s.len() {
pos += 1;
}
-
+
s.drain(..pos);
res
}
-fn parse<T: FromStr>(s: &mut String, delimiter: &str) -> Result<T, T::Err>
+fn parse<T: FromStr>(s: &mut String, delimiter: &str) -> Result<T, T::Err>
where T::Err: StdError {
- let mut pos = s.find(delimiter).unwrap_or(s.len());
+ let mut pos = s.find(delimiter).unwrap_or_else(|| s.len());
let res = (&s[..pos]).parse::<T>().map_err(Error::Parse);
// +1 is for the delimiter
if pos < s.len() {
pos += 1;
}
-
+
s.drain(..pos);
res
}
@@ -100,7 +100,7 @@ pub struct Args {
}
impl Args {
- pub fn new(message: &str, possible_delimiters: Vec<String>) -> Self {
+ pub fn new(message: &str, possible_delimiters: &[String]) -> Self {
let delimiter = possible_delimiters
.iter()
.find(|&d| message.contains(d))
@@ -145,7 +145,10 @@ impl Args {
return Err(Error::Eos);
}
- let pos = self.message.find(&self.delimiter).unwrap_or(self.message.len());
+ let pos = self
+ .message
+ .find(&self.delimiter)
+ .unwrap_or_else(|| self.message.len());
fn parse_then_remove(msg: &mut String, pos: usize) -> &str {
struct ParseThenRemove<'a>(&'a mut String, usize);
@@ -355,7 +358,7 @@ impl Args {
}
// TODO: Make this efficient
-
+
let pos = self.message
.split(&self.delimiter)
.position(|e| e.parse::<T>().is_ok());
diff --git a/src/framework/standard/command.rs b/src/framework/standard/command.rs
index be0196c..5138596 100644
--- a/src/framework/standard/command.rs
+++ b/src/framework/standard/command.rs
@@ -13,7 +13,7 @@ pub type Check = Fn(&mut Context, &Message, &mut Args, &CommandOptions) -> bool
+ Sync
+ 'static;
-pub type HelpFunction = fn(&mut Context, &Message, &HelpOptions, HashMap<String, Arc<CommandGroup>>, Args)
+pub type HelpFunction = fn(&mut Context, &Message, &HelpOptions, HashMap<String, Arc<CommandGroup>>, &Args)
-> Result<(), Error>;
pub struct Help(pub HelpFunction, pub Arc<HelpOptions>);
@@ -25,7 +25,7 @@ impl Debug for Help {
}
impl HelpCommand for Help {
- fn execute(&self, c: &mut Context, m: &Message, ho: &HelpOptions,hm: HashMap<String, Arc<CommandGroup>>, a: Args) -> Result<(), Error> {
+ fn execute(&self, c: &mut Context, m: &Message, ho: &HelpOptions,hm: HashMap<String, Arc<CommandGroup>>, a: &Args) -> Result<(), Error> {
(self.0)(c, m, ho, hm, a)
}
}
@@ -176,7 +176,7 @@ pub struct HelpOptions {
}
pub trait HelpCommand: Send + Sync + 'static {
- fn execute(&self, &mut Context, &Message, &HelpOptions, HashMap<String, Arc<CommandGroup>>, Args) -> Result<(), Error>;
+ fn execute(&self, &mut Context, &Message, &HelpOptions, HashMap<String, Arc<CommandGroup>>, &Args) -> Result<(), Error>;
fn options(&self) -> Arc<CommandOptions> {
Arc::clone(&DEFAULT_OPTIONS)
@@ -184,7 +184,7 @@ pub trait HelpCommand: Send + Sync + 'static {
}
impl HelpCommand for Arc<HelpCommand> {
- fn execute(&self, c: &mut Context, m: &Message, ho: &HelpOptions, hm: HashMap<String, Arc<CommandGroup>>, a: Args) -> Result<(), Error> {
+ fn execute(&self, c: &mut Context, m: &Message, ho: &HelpOptions, hm: HashMap<String, Arc<CommandGroup>>, a: &Args) -> Result<(), Error> {
(**self).execute(c, m, ho, hm, a)
}
}
diff --git a/src/framework/standard/create_help_command.rs b/src/framework/standard/create_help_command.rs
index a8e8704..7e4c338 100644
--- a/src/framework/standard/create_help_command.rs
+++ b/src/framework/standard/create_help_command.rs
@@ -173,6 +173,7 @@ impl CreateHelpCommand {
/// Finishes the creation of a help-command, returning `Help`.
/// If `Some(String)` was set as `striked_commands_tip` and the `String` is empty,
/// the creator will substitute content based on the `HelpBehaviour`-settings.
+ #[cfg_attr(feature = "cargo-clippy", allow(useless_if_let_seq))]
pub(crate) fn finish(self) -> Arc<Help> {
if self.0.striked_commands_tip == Some(String::new()) {
let mut strike_text = String::from("~~`Striked commands`~~ are unavailable because they");
@@ -210,4 +211,4 @@ impl CreateHelpCommand {
Arc::new(Help(function, Arc::new(options)))
}
-} \ No newline at end of file
+}
diff --git a/src/framework/standard/help_commands.rs b/src/framework/standard/help_commands.rs
index 85debc4..c660209 100644
--- a/src/framework/standard/help_commands.rs
+++ b/src/framework/standard/help_commands.rs
@@ -28,6 +28,7 @@ use framework::standard::{has_correct_roles, has_correct_permissions};
use model::channel::Message;
use model::id::ChannelId;
use std::collections::HashMap;
+use std::hash::BuildHasher;
use std::sync::Arc;
use std::fmt::Write;
use super::command::{InternalCommand};
@@ -91,12 +92,13 @@ pub fn has_all_requirements(cmd: &Arc<CommandOptions>, msg: &Message) -> bool {
/// client.with_framework(StandardFramework::new()
/// .help(help_commands::with_embeds));
/// ```
-pub fn with_embeds(_: &mut Context,
- msg: &Message,
- help_options: &HelpOptions,
- groups: HashMap<String, Arc<CommandGroup>>,
- args: Args)
- -> Result<(), CommandError> {
+pub fn with_embeds<H: BuildHasher>(
+ _: &mut Context,
+ msg: &Message,
+ help_options: &HelpOptions,
+ groups: HashMap<String, Arc<CommandGroup>, H>,
+ args: &Args
+) -> Result<(), CommandError> {
if !args.is_empty() {
let name = args.full();
@@ -151,7 +153,7 @@ pub fn with_embeds(_: &mut Context,
let _ = msg.channel_id.send_message(|m| {
m.embed(|e| {
- let mut embed = e.colour(help_options.embed_success_colour.clone()).title(command_name.clone());
+ let mut embed = e.colour(help_options.embed_success_colour).title(command_name.clone());
if let Some(ref desc) = command.desc {
embed = embed.description(desc);
@@ -197,7 +199,7 @@ pub fn with_embeds(_: &mut Context,
}
}
- let error_msg = help_options.command_not_found_text.replace("{}", &name);
+ let error_msg = help_options.command_not_found_text.replace("{}", name);
error_embed(&msg.channel_id, &error_msg, help_options.embed_error_colour);
return Ok(());
@@ -304,12 +306,13 @@ pub fn with_embeds(_: &mut Context,
/// client.with_framework(StandardFramework::new()
/// .help(help_commands::plain));
/// ```
-pub fn plain(_: &mut Context,
- msg: &Message,
- help_options: &HelpOptions,
- groups: HashMap<String, Arc<CommandGroup>>,
- args: Args)
- -> Result<(), CommandError> {
+pub fn plain<H: BuildHasher>(
+ _: &mut Context,
+ msg: &Message,
+ help_options: &HelpOptions,
+ groups: HashMap<String, Arc<CommandGroup>, H>,
+ args: &Args
+) -> Result<(), CommandError> {
if !args.is_empty() {
let name = args.full();
@@ -406,7 +409,7 @@ pub fn plain(_: &mut Context,
}
let _ = msg.channel_id
- .say(&help_options.suggestion_text.replace("{}", &name));
+ .say(&help_options.suggestion_text.replace("{}", name));
return Ok(());
}
diff --git a/src/framework/standard/mod.rs b/src/framework/standard/mod.rs
index 576f820..02de3c0 100644
--- a/src/framework/standard/mod.rs
+++ b/src/framework/standard/mod.rs
@@ -973,7 +973,7 @@ impl Framework for StandardFramework {
let mut content = message.content[position..].trim();
content = content[command_length..].trim();
- Args::new(&content, self.configuration.delimiters.clone())
+ Args::new(content, &self.configuration.delimiters)
};
let before = self.before.clone();
@@ -994,7 +994,7 @@ impl Framework for StandardFramework {
}
}
- let result = (help.0)(&mut context, &message, &help.1, groups, args);
+ let result = (help.0)(&mut context, &message, &help.1, groups, &args);
if let Some(after) = after {
(after)(&mut context, &message, &built, result);
diff --git a/src/http/mod.rs b/src/http/mod.rs
index 5288f5c..f7d4335 100644
--- a/src/http/mod.rs
+++ b/src/http/mod.rs
@@ -1674,7 +1674,7 @@ pub fn send_files<'a, T, It: IntoIterator<Item=T>>(channel_id: u64, files: It, m
let mut request = Multipart::from_request(request)?;
let mut file_num = "0".to_string();
- for file in files.into_iter() {
+ for file in files {
match file.into() {
AttachmentType::Bytes((mut bytes, filename)) => {
request
diff --git a/src/model/guild/guild_id.rs b/src/model/guild/guild_id.rs
index ad5866d..2453fc6 100644
--- a/src/model/guild/guild_id.rs
+++ b/src/model/guild/guild_id.rs
@@ -48,7 +48,8 @@ impl GuildId {
/// [`Guild::ban`]: struct.Guild.html#method.ban
/// [`User`]: struct.User.html
/// [Ban Members]: permissions/constant.BAN_MEMBERS.html
- pub fn ban<U: Into<UserId>, BO: BanOptions>(&self, user: U, ban_options: BO) -> Result<()> {
+ pub fn ban<U, BO>(&self, user: U, ban_options: &BO) -> Result<()>
+ where U: Into<UserId>, BO: BanOptions {
let dmd = ban_options.dmd();
if dmd > 7 {
return Err(Error::Model(ModelError::DeleteMessageDaysAmount(dmd)));
diff --git a/src/model/guild/member.rs b/src/model/guild/member.rs
index 0e8c4f6..166eb55 100644
--- a/src/model/guild/member.rs
+++ b/src/model/guild/member.rs
@@ -135,7 +135,7 @@ impl Member {
///
/// [Ban Members]: permissions/constant.BAN_MEMBERS.html
#[cfg(feature = "cache")]
- pub fn ban<BO: BanOptions>(&self, ban_options: BO) -> Result<()> {
+ pub fn ban<BO: BanOptions>(&self, ban_options: &BO) -> Result<()> {
let dmd = ban_options.dmd();
if dmd > 7 {
return Err(Error::Model(ModelError::DeleteMessageDaysAmount(dmd)));
@@ -189,7 +189,7 @@ impl Member {
for (cid, channel) in &reader.channels {
if reader.permissions_in(*cid, self.user.read().id).read_messages() {
- return Some(channel.clone());
+ return Some(Arc::clone(channel));
}
}
diff --git a/src/model/guild/mod.rs b/src/model/guild/mod.rs
index d6a2c50..1011891 100644
--- a/src/model/guild/mod.rs
+++ b/src/model/guild/mod.rs
@@ -144,7 +144,7 @@ impl Guild {
pub fn default_channel(&self, uid: UserId) -> Option<Arc<RwLock<GuildChannel>>> {
for (cid, channel) in &self.channels {
if self.permissions_in(*cid, uid).read_messages() {
- return Some(Arc::clone(&channel));
+ return Some(Arc::clone(channel));
}
}
@@ -160,7 +160,7 @@ impl Guild {
for (cid, channel) in &self.channels {
for memid in self.members.keys() {
if self.permissions_in(*cid, *memid).read_messages() {
- return Some(Arc::clone(&channel));
+ return Some(Arc::clone(channel));
}
}
}
@@ -208,7 +208,7 @@ impl Guild {
/// [`Guild::ban`]: struct.Guild.html#method.ban
/// [`User`]: struct.User.html
/// [Ban Members]: permissions/constant.BAN_MEMBERS.html
- pub fn ban<U: Into<UserId>, BO: BanOptions>(&self, user: U, options: BO) -> Result<()> {
+ pub fn ban<U: Into<UserId>, BO: BanOptions>(&self, user: U, options: &BO) -> Result<()> {
#[cfg(feature = "cache")]
{
let req = Permissions::BAN_MEMBERS;
@@ -1039,7 +1039,7 @@ impl Guild {
let mut permissions = everyone.permissions;
for role in &member.roles {
- if let Some(role) = self.roles.get(&role) {
+ if let Some(role) = self.roles.get(role) {
if role.permissions.contains(Permissions::ADMINISTRATOR) {
return Permissions::all();
}
diff --git a/src/model/guild/partial_guild.rs b/src/model/guild/partial_guild.rs
index d5312b5..cd51a98 100644
--- a/src/model/guild/partial_guild.rs
+++ b/src/model/guild/partial_guild.rs
@@ -66,7 +66,7 @@ impl PartialGuild {
));
}
- self.id.ban(user, delete_message_days)
+ self.id.ban(user, &delete_message_days)
}
/// Gets a list of the guild's bans.
diff --git a/src/utils/message_builder.rs b/src/utils/message_builder.rs
index f94b3fd..b3599c2 100644
--- a/src/utils/message_builder.rs
+++ b/src/utils/message_builder.rs
@@ -162,7 +162,7 @@ impl MessageBuilder {
/// ```
///
/// [Display implementation]: ../model/struct.Emoji.html#method.fmt
- pub fn emoji(mut self, emoji: Emoji) -> Self {
+ pub fn emoji(mut self, emoji: &Emoji) -> Self {
let _ = write!(self.0, "{}", emoji);
self
@@ -171,7 +171,7 @@ impl MessageBuilder {
/// Mentions something that implements the [`Mentionable`] trait.
///
/// [`Mentionable`]: ../model/trait.Mentionable.html
- pub fn mention<M: Mentionable>(mut self, item: M) -> Self {
+ pub fn mention<M: Mentionable>(mut self, item: &M) -> Self {
let _ = write!(self.0, "{}", item.mention());
self
diff --git a/src/utils/mod.rs b/src/utils/mod.rs
index 2660798..907d3a3 100644
--- a/src/utils/mod.rs
+++ b/src/utils/mod.rs
@@ -18,7 +18,7 @@ use model::misc::EmojiIdentifier;
use std::collections::HashMap;
use std::ffi::OsStr;
use std::fs::File;
-use std::hash::Hash;
+use std::hash::{BuildHasher, Hash};
use std::io::Read;
use std::path::Path;
@@ -28,11 +28,11 @@ use cache::Cache;
use CACHE;
/// Converts a HashMap into a final `serde_json::Map` representation.
-pub fn hashmap_to_json_map<T>(map: HashMap<T, Value>) -> Map<String, Value>
- where T: Eq + Hash + ToString {
+pub fn hashmap_to_json_map<H, T>(map: HashMap<T, Value, H>)
+ -> Map<String, Value> where H: BuildHasher, T: Eq + Hash + ToString {
let mut json_map = Map::new();
- for (key, value) in map.into_iter() {
+ for (key, value) in map {
json_map.insert(key.to_string(), value);
}