aboutsummaryrefslogtreecommitdiff
path: root/src/builder/create_message.rs
diff options
context:
space:
mode:
authoracdenisSK <[email protected]>2017-12-27 18:29:34 +0100
committeracdenisSK <[email protected]>2017-12-27 18:33:29 +0100
commit3a0c8908ce837f6fe64f865a1a7a9de63cbd237c (patch)
treea8597bb4a7d49cfd614a85d3f2b5a95d3df9e055 /src/builder/create_message.rs
parentUpdate dependencies (diff)
downloadserenity-3a0c8908ce837f6fe64f865a1a7a9de63cbd237c.tar.xz
serenity-3a0c8908ce837f6fe64f865a1a7a9de63cbd237c.zip
Improve performance of builders even further
By negating hashing altogether. The increase is around 1000-ish nanoseconds saved.
Diffstat (limited to 'src/builder/create_message.rs')
-rw-r--r--src/builder/create_message.rs9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/builder/create_message.rs b/src/builder/create_message.rs
index a8f22f9..4e1bd4b 100644
--- a/src/builder/create_message.rs
+++ b/src/builder/create_message.rs
@@ -1,8 +1,7 @@
use internal::prelude::*;
use model::channel::ReactionType;
-use std::collections::HashMap;
use std::fmt::Display;
-use super::CreateEmbed;
+use super::{CreateEmbed, VecMap};
use utils;
/// A builder to specify the contents of an [`http::send_message`] request,
@@ -41,7 +40,7 @@ use utils;
/// [`embed`]: #method.embed
/// [`http::send_message`]: ../http/fn.send_message.html
#[derive(Clone, Debug)]
-pub struct CreateMessage(pub HashMap<&'static str, Value>, pub Option<Vec<ReactionType>>);
+pub struct CreateMessage(pub VecMap<&'static str, Value>, pub Option<Vec<ReactionType>>);
impl CreateMessage {
/// Set the content of the message.
@@ -56,7 +55,7 @@ impl CreateMessage {
/// Set an embed for the message.
pub fn embed<F>(mut self, f: F) -> Self
where F: FnOnce(CreateEmbed) -> CreateEmbed {
- let map = utils::hashmap_to_json_map(f(CreateEmbed::default()).0);
+ let map = utils::vecmap_to_json_map(f(CreateEmbed::default()).0);
let embed = Value::Object(map);
self.0.insert("embed", embed);
@@ -90,7 +89,7 @@ impl Default for CreateMessage {
/// [`Message`]: ../model/struct.Message.html
/// [`tts`]: #method.tts
fn default() -> CreateMessage {
- let mut map = HashMap::default();
+ let mut map = VecMap::new();
map.insert("tts", Value::Bool(false));
CreateMessage(map, None)