aboutsummaryrefslogtreecommitdiff
path: root/src/builder
Commit message (Collapse)AuthorAgeFilesLines
* A bunch of typo fixes (#404)Perry Fraser2018-10-013-4/+4
|
* Use `to_`- and `as_`-methods instead of `get` and `find` on Id newtypesLakelezz2018-08-121-2/+2
|
* Fix all the dead links in the docsErk-2018-08-094-9/+9
|
* Move unit tests into sourceZeyla Hellyer2018-08-011-0/+89
| | | | | | | | | Move the unit tests into the relevant source files. There's no need for them to be seprate, especially when the `tests` directory is meant to be for integration tests. The deserialization tests that include JSON files are still in the `tests` dir, along with the public prelude re-export tests.
* Fix some clippy lintsZeyla Hellyer2018-07-152-3/+3
| | | | | Some lints were not resolved due to causing API changes. Most lints in the framework were left unfixed.
* Fix doc links with no anchorZeyla Hellyer2018-07-111-0/+2
|
* Monomorphize all functionsZeyla Hellyer2018-07-047-47/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | This commit monomorphizes all functions, turning functions like: ```rust fn foo<T: Into<Bar>>(baz: T) { baz = baz.into(); // function here } ``` Into functions like: ```rust fn foo<T: Into<Bar>>(baz: T) { _foo(baz.into()) } fn _foo(baz: Bar) { // function here } ``` This avoids binary bloat and improves build times, by reducing the amount of code duplication.
* Fix the notice of `field`acdenisSK2018-06-241-1/+1
| | | | The inline aspect must be always provided.
* Remove link to a nonexistant structacdenisSK2018-06-241-5/+0
|
* Explain `fields` moreacdenisSK2018-06-241-0/+4
|
* Refactor imports/exports to use nested groups and better formattingacdenisSK2018-03-293-17/+22
|
* Change the way ids and some enums are made (#295)Leah2018-03-231-1/+1
| | | | | This makes them easier to be found by tools like rls. Also update struct inits to use the shorthand version for `x: x`.
* Fix Create(Embed/Message) to be consistentacdenisSK2018-03-202-13/+13
|
* Generalise `image`, `thumbnail`, `url` and `attachment`acdenisSK2018-02-081-8/+8
|
* Partially revert the video url changeacdenisSK2018-02-021-6/+0
|
* Inline simple url propertiesacdenisSK2018-02-021-0/+3
|
* Add video url specifier for CreateEmbed (#269)Andrej2018-02-021-11/+14
|
* Fix broken docs links caused by model mod changesZeyla Hellyer2018-01-3110-43/+42
| | | | | Fix broken links caused by the `model` module changes in v0.5.0, which split up the module into sub-modules for better organization.
* Add an `EditMessage` builderZeyla Hellyer2018-01-182-0/+47
| | | | | | When editing messages, not all fields are applicable. Attachments, TTS, and reactions are not applicable. To help with this distinction, separate message editing into a different builder.
* Allow channels to be moved in and out of a category (#248)Kyle Clemens2018-01-081-0/+18
|
* Convert embed footers for CreateEmbed::from (#244)Derrick Lee2018-01-041-0/+12
|
* Move `VecMap` to `utils`acdenisSK2018-01-0212-133/+11
| | | | This also fixes no-builder compilation
* Remove builder re-export in utilsZeyla Hellyer2018-01-022-2/+2
|
* Improve performance of builders even furtheracdenisSK2017-12-2712-31/+152
| | | | | | By negating hashing altogether. The increase is around 1000-ish nanoseconds saved.
* Break up the model moduleZeyla Hellyer2017-12-169-26/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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}; ```
* Merge branch 'branch-v0.4.5' into v0.5.0Zeyla Hellyer2017-12-091-31/+2
|\
| * Release v0.4.5v0.4.5Zeyla Hellyer2017-12-091-2/+1
| |
| * Remove EditRole::default implementationZeyla Hellyer2017-12-091-29/+1
| | | | | | | | | | Removes the custom implementation for `EditRole`, instead deriving Default.
* | Use `ToString`'s blanket impl for `Display`sacdenisSK2017-11-272-4/+4
| |
* | Re-order use statements alphabeticallyZeyla Hellyer2017-11-115-9/+9
| |
* | Fix doc-testsacdenisSK2017-11-082-3/+3
| |
* | Into<String> -> DisplayacdenisSK2017-11-071-6/+6
| |
* | Whoops. Add a `FromStr` impl for `ReactionType`acdenisSK2017-11-041-6/+0
| |
* | Merge v0.4.3acdenisSK2017-11-042-6/+12
|\|
| * Fix no-client cache testsZeyla Hellyer2017-11-012-6/+6
| | | | | | | | | | There were a few doctests in the cache module that relied on the client module, so instead feature-gate the doctests.
* | Make the Client return a ResultZeyla Hellyer2017-11-033-5/+17
| | | | | | | | | | | | | | | | The client now returns a Result in preparation of a future commit. Upgrade path: Handle the case of an error via pattern matching, or unwrap the Result.
* | Remove `on_` prefix to EventHandler tymethodsZeyla Hellyer2017-10-223-4/+4
| | | | | | | | | | It was voted that the `on_` prefix is unnecessary, so these have been dropped.
* | Change CreateEmbed::field{,s} to not take buildersZeyla Hellyer2017-10-183-93/+25
| | | | | | | | | | | | | | | | | | Change the `field` and `fields` methods on `builder::CreateEmbed` to not accept a `CreateEmbedField` builder. The embed field builder realistically only had (and most likely, only will) have one optional argument, so the parameters may as well be on `CreateEmbed::field`.
* | Slightly improve performance of buildersZeyla Hellyer2017-10-1810-172/+127
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Builders would keep a `serde_json::Map<String, Value>`, which would require re-creating owned strings for the same parameter multiple times in some cases, depending on builder defaults and keying strategies. This commit uses a `std::collections::HashMap<&'static str, Value>` internally, and moves over values to a `serde_json::Map<String, Value>` when it comes time to sending them to the appropriate `http` module function. This saves the number of heap-allocated string creations on most builders, with specific performance increase on `builder::CreateMessage` and `builder::CreateEmbed` & co.
* | Update to account for changes made in 0.4.1acdenisSK2017-10-141-1/+1
|\|
| * Fix clippy lintsZeyla Hellyer2017-10-111-1/+1
| |
| * Use an as_ref hackacdenisSK2017-10-051-2/+2
| |
| * Replace slice parametres by IntoIterator (#177)François Triquet2017-10-051-2/+2
| | | | | | Fixes #174
| * Replace Vec parameters by IntoIterator (#176)François Triquet2017-10-042-2/+2
| |
| * Revert "Use the de-generification trick."acdenisSK2017-10-035-60/+21
| | | | | | | | Makes the compiliation time just a bit worse
| * Use the de-generification trick.acdenisSK2017-10-025-21/+60
| | | | | | | | Fixes #168
| * `to_owned` -> `to_string`acdenisSK2017-10-0110-94/+94
| |
* | Switch to parking_lot::{Mutex, RwLock}Zeyla Hellyer2017-10-102-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Switch to the `parking_lot` crate's implementations of `std::sync::Mutex` and `std::sync::RwLock`, which are more efficient. A writeup on why `parking_lot` is more efficient can be read here: <https://github.com/Amanieu/parking_lot> Upgrade path: Modify `mutex.lock().unwrap()` usage to `mutex.lock()` (not needing to unwrap or handle a result), and `rwlock.read().unwrap()`/`rwlock.write().unwrap()` usage to `rwlock.read()` and `rwlock.write()`. For example, modify: ```rust use serenity::CACHE; println!("{}", CACHE.read().unwrap().user.id); ``` to: ```rust use serenity::CACHE; println!("{}", CACHE.read().user.id); ```
* | Use an as_ref hackacdenisSK2017-10-091-2/+2
| |
* | Replace slice parametres by IntoIterator (#177)François Triquet2017-10-091-2/+2
| | | | | | Fixes #174