Thanks to the following for their contributions:
- @AldanTanneo
- @AngelOnFira
- @AnnikaCodes
- @acdenisSK
- @almeidx
- @Bloectasy
- @ben-brook
- @Chronophylos
- @devtomio
- @drklee3
- @FallenWarrior2k
- @Gentoli
- @GnomedDev
- @gradiuscypher
- @HarmoGlace
- @hybras
- @JellyWX
- @kangalioo
- @Lakelezz
- @Licenser
- @MathyouMB
- @Milo123459
- @mkrasnitski
- @natto1784
- @nickelc
- @pascalharp
- @rasm47
- @Rstar284
- @Some-Dood
- @squili
- @TheBlackfurGuy
- @tylerd008
- @vaporox
- @vicky5124
- @xMAC94x
- @xfix
Added
- [ci] Add build job to test the
native-tls
backend (@nickelc) c:440f0fa - [model] Add new command data field
guild_id
(@nickelc) c:4dbf3d0 - [model] Add new "Directory" channel type (@nickelc) c:3b99eeb
- [utils] Add
users
argument toutils::content_safe
(@GnomedDev) c:c18e889 - [model] Add attachment support to interaction responses (@GnomedDev) c:dc400de
- [model] Add new audit change variant for
image_hash
key (@nickelc) c:985212a - [misc] Add
.git-blame-ignore-revs
file (@nickelc) c:3a3e399 - [builder] Add function to
CreateInteractionResponseData
to set or unset the ephemeral flag (@pascalharp) c:283af98 - [model] Add method to create
model::Timestamp
from a UNIX timestamp (@nickelc) c:66f8be7 - [model] Add new message flag
FAILED_TO_MENTION_SOME_ROLES_IN_THREAD
(@nickelc) c:a75ac69 - [model] Add missing stuff for
GatewayIntents
(@vaporox) c:14fc9c6 - [model] Add shorthand for checking the
GUILD_MESSAGES
intent bitflag (@Bloectasy) c:6f28486 - [model] Add
Webhook::get_message
for retrieving messages sent by a webhook (@GnomedDev) c:a2b388f - [builder/model] Enable compilation of builder/interaction code without a backend (@FallenWarrior2k) c:4cd6caa
- [http] Support more options for querying invites (@AnnikaCodes) c:c1ef6d9
- [builder] Add components support to ExecuteWebhook and EditWebhookMessage (@mkrasnitski) c:cb7f211
- [http/gateway] Add support for v10 of Discord's HTTP API and Gateway (@squili) c:5c6c72a
- [model] Add
GenericId
snowflake type for unspecific entities in audit logs (@nickelc) c:146b1ac - [model] Add support for the
Attachment
option type (@JellyWX) c:9866a85 - [model] Derive
Copy
andClone
traits for the audit action enums (@nickelc) c:dfac5d7 - [model] Provide parsing of RFC 3339 strings for
model::Timestamp
(@nickelc) c:3aca5ca - [builder] Add convenient methods for creating message components (@nickelc) c:6476ed1
- [model] Derive
Default
trait for all bitflags types (@nickelc) c:92de3da - [builder] Add support for
allowed_mentions
in theExecuteWebhook
builder (@mkrasnitski) c:71583c3 - [model] Add support for
locale
andguild_locale
fields in interactions (@Rstar284) c:b4d0765 - [model] Add
data
andfilename
methods toAttachmentType
(@mkrasnitski) c:ad9e987 - [builder] Support more integer types for min_value / max_value (@kangalioo) c:0da4ab5
- [model] Add a common constructor for the different
ActivityType
s (@nickelc) c:b4e4add - [json] Expose more types and functions from
serde_json
andsimd-json
(@vicky5124) c:f61fae4 - [client] Add cache update calls to dispatched thread events (@AngelOnFira) c:7e701dc
- [model] Support application webhooks (@vicky5124) c:2c73618
- [model] Add
USE_EXTERNAL_STICKERS
permission and audit log support for stickers (@drklee3) c:1fbf1e9 - [http] Allow sending files when creating and editing followup messages (@acdenisSK) c:147ed03
- [model/http] Add support for sticker packs, guild stickers, and sticker routes (@drklee3) c:a88673f
- [http] Add audit log reason support to most HTTP endpoints (@kangalioo) c:bec660d
- [http] Integrate attachments into the
Request
system (@drklee3) c:57582d2 - [http] Implement optional pagination for
Http::get_guilds
(@tylerd008) c:06d101b - [model] Add support for adding attachments in message edits (@kangalioo) c:27bf301
- [framework] Add the name of the command to the
Dispatch
error hook (@kangalioo) c:c2130a8 - [misc] Add support for simd-json via a feature flag (@Licenser) c:afb3c37
- [model] Add basic support for forum channels (@kangalioo @TheBlackfurGuy) c:35ee68b
- [model] Add missing method for converting
Interaction
toModalSubmitInteraction
(@gradiuscypher) c:e187f73 - [builder] Add support to set a single child builder for several parent builders (@natto1784) c:91ee596
- [collector] Add modal submit collector (@pascalharp) c:e5073ae
- [client] Add a method to pass an
EventHandler
in anArc
directly to theClient
(@squili) c:16c2089 - [model] Add Modal Interactions and Input Text (@pascalharp) c:92fe5bb
- [builder] Add
set_components
toEditMessage
(@Chronophylos) c:57c0826 - [model] Add
message_id
field to audit log options for pinned/unpinned messages (@nickelc) c:3a64da1 - [model] Add
add_member
toGuild
andGuildId
(@vaporox) c:82c2415 - [builder] Add support for
allowed_mentions
inEditMessage
(@acdenisSK) c:86dbaee
Changed
- [utils] Use
str::split_once
for parsing webhooks and user tags (@mkrasnitski) c:fbfe0cf - [utils] Refactor and fix bugs in
utils::content_safe
(@mkrasnitski) c:32cb31c - [model] Move
misc::Mention{able}
into their ownmodel/mention
module (@mkrasnitski) c:f5458f1 - [client] Require setting gateway intents explicitly (@kangalioo) c:d245e67
- [model] Update methods and properties of
Permissions
(@devtomio) c:10410a2 - [http] Pass parsed token to
Ratelimiter::new()
(@vaporox) c:f4f310d - [http] Simplify constructor functions for
Http
(@vaporox) c:f8bc937 - [model] Remove unnecessary
CacheHttp
requirements (@vaporox) c:a36353b - [model] Update documentation around webhook components (@mkrasnitski) c:6028072
- [misc] Format imports with module granularity (@nickelc) c:4c97810
- [gateway] Set
Http::application_id
in ready event handler (@vaporox) c:c5f9cbe - [misc] Switch to using URL over URI (@vaporox) c:81a9bc2
- [model] Deserialize the interaction data's
target_id
unconditionally (@nickelc) c:c5dc80b - [model] Reduce size of the
ResolvedTarget
enum variants (@nickelc) c:404ab03 - [model] Change matches where the match expression is a bool to be more idiomatic (@nickelc) c:977946f
- [cache] Place temporary caching functionality under a separate feature flag (@acdenisSK) c:d03809f
- [misc] Make chrono a default optional feature (@xfix) c:e69bcd3
- [model] Clean up macro usage in
model::misc
(@mkrasnitski) c:5a0e8f4 - [model] Alter
Guild::member_named
's implementation to useutils::parse_user_tag
(@mkrasnitski) c:8c9670f - [utils] Make
ArgumentConvert
compatible without thecache
feature (@kangalioo) c:cdaa70c - [model] Document that the
MESSAGE_CONTENT
intent is now privileged (@kangalioo) c:63a1000 - [client] Use
Option
in more places in theClientBuilder
(@vaporox) c:8bca94a - [misc] Simplify the hidden preparation code in doc examples (@nickelc) c:d67a21d
- [model] Remove kind check for sending webhook components (@GnomedDev) c:a292c2f
- [model] Remove the
unstable_discord_api
feature guard from the application commands (@nickelc) c:1ce8060 - [model] Turn the resolved target of the command interaction data into a method (@nickelc) c:0036620
- [model] Clean up API around Mention/Mentionable (@mkrasnitski) c:28e6732
- [examples] Use the new builder method for ephemeral messages in example (@nickelc) c:aada1b9
- [utils] Replace custom trait with
Into<Content>
(@mkrasnitski) c:c9e4f27 - [model] Make the non-cache version of the
shard_id
methods synchronous (@nickelc) c:787e7d9 - [model] Remove manual deserialization of
ApplicationCommandInteractionDataResolved
(@nickelc) c:56cab22 - [ci] Pin the Rust version for the build jobs with the nightly toolchain (@nickelc) c:36eac42
- [model] Use
ApplicationFlags
bitflags in the application info structs (@nickelc) c:33d402f - [misc] Unify
std::fmt
imports andDisplay
&Debug
trait implementations (@nickelc) c:7a8f2cf - [misc] Update
parking_lot
to 0.12 (@xfix) c:d5b5970 - [misc] Update
async-tungstenite
to 0.17 (@nickelc) c:4ff348e - [misc] Increase MSRV to 1.53 (@nickelc) c:87bb9a8
- [misc] Put
tokio::task::Builder
usage behind a feature flag (@Milo123459) c:9624af0 - [cache] Temporarily cache users and channels in the
to_user
andto_channel
functions (@Milo123459) c:1be625b - [model] Rename the enum sub types of the audit log actions (@nickelc) c:56c40fc
- [model] Make the
model::guild::audit_log
module public (@nickelc) c:7d99bcb - [collector] Make collector builders synchronous (@vaporox) c:d640238
- [model] Change the data mapping of
AuditLogs
(@nickelc) c:7823b6e - [model] Move the audit log serde modules into a separate
utils
module (@nickelc) c:5a4fd2a - [model] Change the audit log
Change
struct into an enum with the actual types (@nickelc) c:594a00d - [model] Rework the audit log serde module for optional integer strings (@nickelc) c:74bffd0
- [misc] Update
dashmap
to v5.1.0 (@acdenisSK @vicky5124 @Some-Dood) c:6298f67 c:342fdbb c:28e0311 - [model] Replace deserialization helper functions with the required types (@nickelc) c:938936e
- [model] Implement
serde
traits for the auditAction
enum directly (@nickelc) c:0f77d31 - [http] Refactor
HttpBuilder
to avoidunwrap
calls (@vaporox) c:89499b2 - [utils] Move token parse and validate functions into the
utils::token
module (@nickelc) c:97ea22f - [model] Make certain embed fields optional (@Chronophylos) c:daa9434
- [utils] Move
utils::content_safe
and dependants into its own module (@nickelc) c:ab4e7fe - [model] Replace manual deserialization of
VoiceState
with helper structs (@nickelc) c:14e747d - [misc] Move macOS job out of the build job matrix (@nickelc) c:23ed9ea
- [builder] Avoid
Vec
allocation by using the iterators directly (@nickelc) c:4556594 - [builder] Change
emoij
parameters in component builders toInto<ReactionType>
(@nickelc) c:8fe7127 - [model] Deserialize Discord's status page responses with an interim struct (@nickelc) c:a29e0f7
- [framework] Replace levenshtein implementation with the
levenshtein
crate (@nickelc) c:5f6ad2a - [framework] Use subslice patterns to improve code readablility (@nickelc) c:08b7163
- [model] Use the
is_false
function from themodel::utils
module (@nickelc) c:5b43bdb - [model] Use the internal
bitflags!
macro forApplicationFlags
(@nickelc) c:dd5661c - [model] Replace the use of
DateTime<Utc>
with a newtype structTimestamp
(@nickelc) c:1577efc - [model] Introduce internal
bitflags!
macro with serde implementation (@nickelc) c:4d5f4f1 - [misc] Decouple the minimal versions check from the
nightly
build job (@nickelc) c:fbba88c - [http] Change the return type of
Route::stage_instances
to&'static str
(@nickelc) c:a3dd38e - [misc] Improve usage of the
api!
macro (@nickelc) c:a95ac81 - [cache] Move the implementations of
CacheUpdate
into thecache::event
module (@nickelc) c:afba7f5 - [model] Use the
bitflags!
macro instead of the undocumented macro (@nickelc) c:701d759 - [model] Replace
GuildStatus
withUnavailableGuild
in the ready event (@nickelc) c:5063de1 - [model] Deserialize
Permissions
without an extraString
allocation (@nickelc) c:f26fb7f - [model] Separate
Webhook::edit
into three separate methods (@mkrasnitski) c:1715476 - [model] Replace manual deserialization of
RoleTags
(@nickelc) c:363a311 - [model] Replace (de)serialization implementation of bitflags with a macro (@nickelc) c:bdf99b9
- [model] Replace manual (de)serialization for single field gateway events (@nickelc) c:599efc1
- [model] Move
GuildWelcomeScreen
and dependant types into a separate module (@nickelc) c:bc46711 - [misc] Improve usage of the
cdn!
macro (@nickelc) c:9a2cce8 - [http] Remove manual deserialization of
DiscordJsonError
(@nickelc) c:080f5b0 - [model] Move
GatewayIntents
tomodel
(@Gentoli) c:f46bbc8 - [http] Change methods on
Http
to take&JsonMap
instead ofJsonMap
(@mkrasnitski) c:b1389aa - [misc] Replace the
actions-rs
GitHub actions with equivalent commands (@nickelc) c:48de0e5 - [misc] Allow
clippy::unwrap_used
for tests globally (@nickelc) c:f9f6079 - [misc] Speed up the
Examples
build job by just checking instead of building (@nickelc) c:34881b9 - [model] Refactor
GuildWelcomeChannel
and dependant types (@nickelc) c:dfe38c2 - [utils] Move the
hashmap_to_json_map
function into thejson
module (@nickelc) c:34c484c - [model] Move the event deserialization of
Role
creation and update into a helper function (@nickelc) c:25cdfeb - [client] Streamline
EventHandler
by removing redundantguild_id
parameters (@nickelc) c:a5f9a4f - [model] Deserialize the
GuildMembersChunkEvent
struct manually (@nickelc) c:ae93570 - [model] Move
User
's discriminator de-/serialization into themodel::user
module (@nickelc) c:178f62c - [model] Move Discord's snowflake de-/serialization into the
model::id
module (@nickelc) c:68d5049 - [model] Use serde's primitive integer deserializers for Discord's integer bitflags (@nickelc) c:7a38ad1
- [model] Use type inference in serde functions (@nickelc) c:d504bf2
- [misc] Change
match
es where the match expression is a bool to be more idiomatic (@nickelc) c:cb5d090 - [model] Reuse the
HashMap
values serialization in the other serde modules (@nickelc) c:5ce8177 - [model] Add serde visitor to deserialize sequences directly as hashmaps. (@nickelc) c:e57433f
- [model] Move serde functions into modules to be used with
#[serde(with = "...")]
(@nickelc) c:173c1a6 - [misc] Increase MSRV to 1.51 (@nickelc) c:590437b
- [http] Convert
HttpBuilder
to be synchronous (@Some-Dood) c:fa68bb1 - [examples] Update dependencies in examples and the library (@vicky5124) c:228ee8e
- [model] Rename the
category_id
field of channel types toparent_id
(@AldanTanneo) c:cf1a897 - [model] Rename
ApplicationCommand
message type toChatInputCommand
(@HarmoGlace) c:bc9315c - [cache] Make the cache synchronous and switch to
DashMap
in its internals (@vicky5124) c:9e2b9df - [model] Add fallback to HTTP for
Message::channel
(@kangalioo) c:c889c7e - [framework] Change return signatures of help commands to return
Result
s (@acdenisSK) c:a8cd62d - [model] Make
Embed::colour
anOption
(@drklee3) c:5223ea0 - [model] Make
RichInvite::inviter
optional and replaceInviteUser
withUser
(@acdenisSK) c:82e5095 - [misc] Update to
reqwest
v0.11.7 andasync-tungstenite
v0.16 (@nickelc) c:c80084c c:d1a3ded c:a168913
Fixed
- [misc] Fix minor issues with doc comments & examples (@nickelc) c:d3ae156
- [misc] Fix compilation error (@nickelc) c:1dbe9f1
- [misc] Fix clippy warnings suggested by
clippy::pedantic
(@nickelc) c:f6a3700 - [model] Fix parsing interactions with DM channel argument (@kangalioo) c:f6c4db0
- [misc] Fix
unused_imports
warning (@nickelc) c:a9d1919 - [ci] Fix typo in environment variable in
Publish docs
build job (@nickelc) c:11fff2f - [http] Fix docstring of
Route::ChannelsIdMessagesId
(@mkrasnitski) c:1a9bb54 - [misc] Fix usage of builder pattern across code, docs, and examples (@mkrasnitski) c:36e0909
- [builder] Clarify documentation for using components with webhooks (@mkrasnitski) c:87f5bae
- [model] Fix the mapping of the
Change::Type
variant (@nickelc) c:3f93af8 - [model] Fix serialization of the role/user ID in
PermissionOverwrite
(@nickelc) c:1f13d70 - [model] Fix broken resolving logic for
AttachmentType::Image
(@mkrasnitski) c:0632019 - [model] Fix missing
communication_disabled_until
data in member update & chunk events (@nickelc) c:bb638c0 - [misc] Fix & deny intra-doc links to private items (@nickelc) c:86a5861
- [misc] Fix unused import & function warnings for certain feature combinations (@nickelc) c:6139a63
- [misc] Fix clippy warnings (@nickelc @acdenisSK) c:f724aec c:56a9fcb c:508864d c:2060cfb c:111f437
- [model] Fix lifetime definitions for builders with attachments (@acdenisSK) c:65c0122
- [misc] Update
JOIN_MESSAGES
constant to be up to date (@acdenisSK) c:6219fec - [examples] Fix the
e09_create_message_builder
example when thetime
feature is enabled (@nickelc) c:74f4396 - [model] Fix ID type deserialization from signed integers (@nickelc) c:ba84c77
- [misc] Allow feature combination
builder,unstable_discord_api
(@Gentoli) c:eda64a6 - [model] Fix faulty (de)serialization of
ActivityFlags
(@nickelc) c:1725627 - [model] Fix faulty (de)serialization of
MessageFlags
and missing constants (@nickelc) c:1a0cc66 - [model] Fix the
EmojiId
serialization in theReactionType
serialization (@nickelc) c:5114d80 - [model] Replace some incorrect usage of
UserId
withApplicationId
(@kangalioo) c:4b2c4d9 - [client] Update the cache when a thread is created, updated, or removed (@xMAC94x) c:c95bcd3
- [model] Fix serialisation and deserialisation of
Integration::synced_at
(@vicky5124) c:983d0e4 - [model] Fix deserialisation of
PresenceUser
'sdiscriminator
field (@acdenisSK) c:584d3a9 - [model] Return a proper error type for
EmojiIdentifier
'sFromStr
impl (@kangalioo) c:faebd0c - [model] Fix
Message::edit
's lifetimes (@acdenisSK) c:22a3f64 - [model] Correctly cache guild categories on add/delete/update (@drklee3) c:3b2b18c
- [model] Ensure
Activity::url
is a valid URL at a type-level (@hybras) c:3f985b5 - [model] Alter deserialisation of
Presence::user
to properly handle optional fields (@kangalioo) c:a3a861c - [misc] Fix common spelling mistakes using
codespell
(@acdenisSK) c:4eee51c - [misc] Fix typo (
titel
->title
) (@acdenisSK) c:519ea83 - [model] Update
communication_disabled_until
field if cached member exists (@drklee3) c:7a8adfb - [model] Fix mention syntax of guild emojis (@pascalharp) c:48ca506
Removed
- [misc] Remove the
Error::Num
enum variant (@nickelc) c:2596927 - [any] Remove redundant
ClientBuilder::application_id
field (@nickelc) c:d7ef273 - [misc] Remove the
Error::Rustls
enum variant (@nickelc) c:8d3a079 - [framework] Remove unused
found_group_prefix
parameter (@vaporox) c:e283b51 - [misc] Remove unused
update_cache_timeout
fromCacheAndHttp
(@vaporox) c:c2b9445 - [misc] Remove
*tls_backend_marker
features (@vaporox) c:16661a3 - [client] Remove unused
client::Extras
struct (@nickelc) c:1ed7ac5 - [model] Remove sunsetted store channel type (@nickelc) c:1976428 c:8b21193
- [misc] Remove superfluous error heading (@nickelc) c:c92acfd
- [model] Remove unused
ApplicationInfo
&BotApplication
structs (@nickelc) c:1e427c6 - [misc] Remove
tokio
0.2 compatibility (@xfix) c:04a57c3 - [misc] Remove usage of
#[doc(cfg(...))]
(@acdenisSK) c:602bcb6 - [model] Remove unused
model::guild::Target
enum (@nickelc) c:b767215 - [model] Remove manual deserialization of
AuditLogs
(@nickelc) c:16dcc69 - [misc] Remove deprecated
Error::description
implementation (@nickelc) c:63cdeec - [http] Remove usage of
Arc
forreqwest::Client
(@vaporox) c:a1cdd7f - [model] Remove the unused
Component
enum (@nickelc) c:1e11fb4 - [misc] Remove deprecated fields, gateway events, endpoints and traits (@nickelc) c:75062ae
- [model] Remove workaround for serde_json's
arbitrary_precision
feature (@nickelc) c:bc77218 - [misc] Remove superfluous link reference definitions (@nickelc) c:0bb6bb1 c:d51b0b1
- [model] Remove the manual deserialization of
Activity
(@nickelc) c:4e7c60a - [model] Remove obsolete
#[cfg(feature = "utils")]
attributes on model methods (@nickelc) c:0675fd1 - [model] Remove unused
NeverFails
error type (@nickelc) c:5774572 - [client] Remove useless lifetime from
ClientBuilder
(@kangalioo) c:e6039c4 - [model] Remove the
VoiceRegion::vip
field (@almeidx) c:e748deb - [gateway] Remove
Shard::is_shutdown
(@rasm47) c:0ccb793 - [framework] Remove
Box
indirection onframework
. (@Lakelezz) c:2f48379 - [model] Remove invalid
GuildChannel::send_message
note (@MathyouMB) c:73ff5ba - [examples] Remove outdated reference to
kankyo::load()
in example 06 (@ben-brook) c:db101fd