aboutsummaryrefslogtreecommitdiff
path: root/src/internal/macros.rs
Commit message (Collapse)AuthorAgeFilesLines
* Fix compilation + tests on certain feature combosZeyla Hellyer2018-08-071-10/+1
| | | | | | | | On certain feature combinations, compilation and tests would not function correctly. This commit goes through a number of feature combinations and gates some tests behind the required features and fixes other compilation errors.
* Redo how requests are formed in HTTP moduleZeyla Hellyer2018-08-041-22/+0
| | | | | | | | | | Instead of passing around a function that builds an HTTP client request builder, pass around a struct that contains the necessary information _to_ build that request builder. Additionally, instead of using a macro to generate requests, just call a request function. This saves some required code expansion and is just easier to read and maintain.
* Maintain a single, re-used HTTP clientZeyla Hellyer2018-08-041-12/+4
| | | | | | | Instead of creating a new HTTP client for each request, keep a single one for every HTTP request. This will make things faster due to keepalives.
* Change the way ids and some enums are made (#295)Leah2018-03-231-11/+2
| | | | | This makes them easier to be found by tools like rls. Also update struct inits to use the shorthand version for `x: x`.
* Expose a client voice managerZeyla Hellyer2018-01-181-29/+0
|
* Convert from macro to ? (#226)Mei Boudreau2017-11-231-8/+0
|
* Fix some compilation feature targets, fix lintsZeyla Hellyer2017-10-171-0/+1
|
* Add try_opt macro for substituteMei Boudreau2017-10-121-0/+7
|
* Fix compiles of a variety of feature combinationsZeyla Hellyer2017-09-181-6/+11
| | | | | This fixes compilation errors and warnings when compiling a mixture of non-default feature targets.
* Fix rustfmt lines that are too longZeyla Hellyer2017-08-181-1/+2
| | | | | Apparently rustfmt can't fix some of these, causing it to exit with 3 and therefore failing the build.
* rustfmtacdenisSK2017-07-271-6/+6
|
* Upgrade rust-websocket, rust-openssl, and hyperZeyla Hellyer2017-06-071-4/+20
| | | | | | | | | | | | | | | | Upgrade `rust-websocket` to v0.20, maintaining use of its sync client. This indirectly switches from `rust-openssl` v0.7 - which required openssl-1.0 on all platforms - to `native-tls`, which allows for use of schannel on Windows, Secure Transport on OSX, and openssl-1.1 on other platforms. Additionally, since hyper is no longer even a dependency of rust-websocket, we can safely and easily upgrade to `hyper` v0.10 and `multipart` v0.12. This commit is fairly experimental as it has not been tested on a long-running bot.
* Remove unused internal macroZeyla Hellyer2017-05-241-9/+0
| | | | | The `base!` macro providing the base URI for discordapp is no longer in use and can be safely removed.
* Restructure modulesZeyla Hellyer2017-05-221-0/+170
Modules are now separated into a fashion where the library can be used for most use cases, without needing to compile the rest. The core of serenity, with no features enabled, contains only the struct (model) definitions, constants, and prelude. Models do not have most functions compiled in, as that is separated into the `model` feature. The `client` module has been split into 3 modules: `client`, `gateway`, and `http`. `http` contains functions to interact with the REST API. `gateway` contains the Shard to interact with the gateway, requiring `http` for retrieving the gateway URL. `client` requires both of the other features and acts as an abstracted interface over both the gateway and REST APIs, handling the event loop. The `builder` module has been separated from `utils`, and can now be optionally compiled in. It and the `http` feature are required by the `model` feature due to a large number of methods requiring access to them. `utils` now contains a number of utilities, such as the Colour struct, the `MessageBuilder`, and mention parsing functions. Each of the original `ext` modules are still featured, with `cache` not requiring any feature to be enabled, `framework` requiring the `client`, `model`, and `utils`, and `voice` requiring `gateway`. In total the features and their requirements are: - `builder`: none - `cache`: none - `client`: `gateway`, `http` - `framework`: `client`, `model`, `utils` - `gateway`: `http` - `http`: none - `model`: `builder`, `http` - `utils`: none - `voice`: `gateway` The default features are `builder`, `cache`, `client`, `framework`, `gateway`, `model`, `http`, and `utils`. To help with forwards compatibility, modules have been re-exported from their original locations.