fix(deps): update rust crate serenity to 0.12.4 #157
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.11
->0.12.4
Release Notes
serenity-rs/serenity (serenity)
v0.12.4
Compare Source
This is a hotfix release to fix broken behaviour of
Message::author_permissions
before it is relied on.Thanks to the following for their contributions:
Deprecations
_in
variants.Additions
From<&User>
has been added toCreateEmbedAuthor
, to avoid consuming the user.Fixes
Message::author_permissions
now respects permission overrides, as it is documented to.Message::author_permissions
now respectsSEND_MESSAGES_IN_THREADS
when used in threads.Documentation improvements
Guild::threads
has been expanded.v0.12.3
Compare Source
Thanks to the following for their contributions:
Deprecations
Message(Id)::link_ensured
can be replaced byMessage(Id)::link
if recieved via event, orMessageId::link
if the message was recieved via a HTTP request.CreateInteractionResponse::PremiumRequired
has been deprecated and replaced with Premium Buttons.GuildChannel::permissions_for_user
has been deprecated, use the newMessage::author_permissions
helper orGuild::user_permissions_in
.Additions
CreateButton
now implementsFrom<Button>
.User::display_name
has been added, as users may have two different names now.CurrentApplicationInfo
.GuildMemberFlags
have been added.USE_EXTERNAL_APPS
permission has been added.MessageReferenceKind
has been added to start supporting forwarding.{PartialGuild, Guild}::partial_member_permissions
has been added for more efficent permissions checkingunstable_discord_api
.Message::author_permissions
helper has been added, alongsidePermissions::dm_permissions
.Deserialisation Fixes
Messages with reactions no longer fail to deserialize due to super reaction changes.
unstable_discord_api
-1
no longer fail to deserialise.General fixes
GuildId::members_iter
documentation.CreateAttachment
documentation has been updated to be more consistent with other builders.CreateEmbedAuthor
documentation can now spellembed
correctly.AuthorizingIntegrationOwners
is now usable, as the field was previously private.Partial
)Guild::member_permissions
is now usable without cache.ChannelId::delete_messages
documentation has been expanded to document the single item case.BulkBanResponse
have been made public.bulk_ban
endpoint is now usable, previously unusable due toSend
issues.v0.12.2
Compare Source
Thanks to the following for their contributions:
Deprecations
Continuing with the deprecations started in 0.12.1, many more methods and fields have been deprecated in order to make an easier upgrade path to 0.13.
These deprecation messages include a migration path, it is recommended to go one by one using
cargo check
and migrate each warning to reduce the burden migrating to 0.13. Following is a list of the deprecation PRs and the justification for these changes.Channel::is_nsfw
method was wrong, useless, and served better byGuildChannel::nsfw
Member::highest_role_info
is now strictly less powerful than the newGuild::member_highest_role
and can avoid a cache lookup if used correctly.Guild::is_large
is less accurate thanGuild::large
Message::is_own
is super simple to implement yourselfMessage::is_private
simply checks ifMessage::guild_id
isnone
.Event::PresencesReplace
does not exist, and is a relic from when serenity supported user accounts.TeamMember::permissions
is always["*"]
, so is useless.Other notable changes
CreateMessage::enforce_nonce
, to prevent sending duplicate messages.EditProfile::banner
, allowing banners to be set for bots.ChannelId::get_thread_member
.Guild::partial_member_permissions_in
, which can be used to avoid fetching aMember
in message events just to check permissions.From<User>
forCreateEmbedAuthor
, setting the author name and icon to theUser
's info.UserId::direct_message
, so you don't need a fullUser
to direct message.Http::default_allowed_mentions
to set theAllowedMentions
to be used with every request.Guild
(Id
)::bulk_ban
, allowing bulk banning without hitting rate limits.v0.12.1
Compare Source
Thanks to the following for their contributions:
Notable changes
In this release, the standard framework has been deprecated
(#2733).
As Discord continues to endorse and evolve application commands (
/...
commands, user commands, message commands, etc.), the standard framework
becomes increasingly outdated. Bots are also steadily losing (and already have
lost) access to contents of messages, making it difficult to build a
prefix-only bot. Unless you plan on restricting your bot to only accept
commands in DMs, allowing its presence in only fewer than 100 guilds, or
presenting a reasonable justification to Discord for permission to continue
using message contents, you should migrate to application commands. We
recommend poise, which supports writing
both prefix and application commands with a
#[command]
macro like thestandard framework.
Why not just update the framework?
Poise already exists and is better than the standard framework. Efforts should
be directed at improving poise instead. To support application commands would
require an overhaul of the standard framework, as they are special (for
instance, Discord parses arguments on behalf of the bot and passes them as
structured data, whereas for prefix commands, the bot must parse by itself).
Smaller, but still notable changes
RoleId::to_role_cached
- UseGuild::roles
instead.bitflags!
types, resulting in a smaller memory footprint.GuildId
/Guild
instead.v0.12.0
Compare Source
This release turned out to be one of serenity's largest ever, with well over 300 PRs in total! It contains quite a few major breaking changes to the API. Therefore, the changelog for this release also serves as a migration guide for users upgrading from the 0.11 series.
Thanks to the following for their contributions:
Builders
The closure-based API for constructing requests using the builder pattern has been ripped out and replaced. In place of closures, users must now pass in builder types directly. For example, in serenity 0.11, code like the following was very common:
Now, users instead write the following code:
Or, inline like so:
Note that in this particular example, the channel name is now a mandatory field that must be passed in when constructing the builder. Mutating the builder with subsequent calls to
CreateChannel::name
will change the underlying value. Additionally, all methods on builders now takemut self
and returnSelf
, instead of taking and returning&mut self
/&mut Self
. This allows for explicit construction as in the second example above. Also, builders no longer wrap apub HashMap<&'static str, T>
; the hashmap has been flattened into concrete private fields.Some benefits to this new approach to builders are:
Attachments
AttachmentType
enum has been replaced with aCreateAttachment
builder struct. This struct has thefile
,path
, andurl
constructors that eagerly evaluate the data passed to them -CreateAttachment
simply stores the resulting raw data. This is in contrast toAttachmentType
which lazily carried filepaths/urls with it, and haddata
andfilename
methods for resolving them. Additionally, theCreateAttachment::to_base64
method can be used to manually encode an attachment if needed.EditAttachments
builder struct has been added for use with theattachments
method on theEditMessage
,EditWebhookMessage
, andEditInteractionResponse
builders. This new builder provides finer control when editing a message's existing attachments or uploading additional ones. Also, the following methods have been renamed to more accurately reflect their behavior:EditMessage::attachment
EditMessage::new_attachment
EditMessage::add_existing_attachment
EditMessage::keep_existing_attachment
EditWebhookMessage::clear_existing_attachments
EditWebhookMessage::clear_attachments
EditInteractionResponse::clear_existing_attachments
EditInteractionResponse::clear_attachments
Collectors
Collectors have been redesigned and simplified at no cost to expressibility. There is now a generic
collector::collect
function which takes a closure as argument, letting you filter events as they stream in.ComponentInteractionCollector
,ModalInteractionCollector
,MessageCollector
, andReactionCollector
) are simply convenience structs that wrap this underlying function.EventCollector
is now deprecated, as its use usually involved anti-patterns around fallibility. However, its functionality can still be replicated usingcollector::collect
. See example 10 for more details.RelatedId
andRelatedIdsForEventType
types have been removed as they were only used byEventCollector
. Methods for retrieving them from events have also been removed; if users wish to extract "related" ids from an event, they should do so directly from the event's fields. The removed methods are the following:Event::user_id
Event::guild_id
Event::channel_id
Event::message_id
EventType::related_ids
Commands
In an effort to shorten long names and make import paths less unwieldy, Serenity now uses
command
instead ofapplication_command
in all places, except for thePermissions::USE_APPLICATION_COMMANDS
constant. This includes methods on theHttp
,GuildId
,Guild
,PartialGuild
, andCommand
types, as well as a few other miscellaneous places:Http::*_{global,guild}_application_command*
Http::*_{global,guild}_command*
{GuildId,Guild,PartialGuild}::*_application_command*
{GuildId,Guild,PartialGuild}::*_command*
Command::*_global_application_command*
Command::*_global_command*
Interaction::application_command
Interaction::command
EventHandler::application_command_permissions_update
EventHandler::command_permissions_update
Route::ApplicationCommand*
Route::Command*
Permissions::use_application_commands
Permissions::use_commands
Additionally, the following command types have been renamed:
CreateApplicationCommand
CreateCommand
CreateApplicationCommandOption
CreateCommandOption
CreateApplicationCommandPermissionData
CreateCommandPermission
CreateApplicationCommandPermissionsData
EditCommandPermissions
CommandPermission
CommandPermissions
CommandPermissionData
CommandPermission
Furthermore, the methods on
CreateCommandPermission
, such asnew
,kind
, etc. have been replaced with constructors for each type of permission, e.g.role
,user
,channel
, etc., to avoid a possible mismatch betweenkind
and the id that gets passed in.Finally, the
{GuildId,Guild,PartialGuild}::create_command_permission
method has been renamed toedit_command_permission
to more accurately reflect its behavior.Cache
CacheRef
type that wraps a reference into the cache. Other methods that returned a map, now return a wrapper type around a reference to the map, with a limited API to prevent accidental deadlocks. This all helps reduce the number of clones when querying the cache. Those wishing to replicate the old behavior can simply call.clone()
on the return type to obtain the wrapped data.CacheSettings
has new fieldstime_to_live
,cache_guilds
,cache_channels
, andcache_users
, allowing cache configuration on systems with memory requirements; whereas previously, memory-constrained systems were forced to disable caching altogether.PrivateChannel
s (aka DM channels) has been removed, as they are never sent across the gateway by Discord. Therefore, theCache::{private_channel, private_channels}
methods have been removed, andCache::guild_channel
has been renamed to justCache::channel
. Additionally, some uses of theChannel
enum in return types have been replaced with eitherGuildChannel
orPrivateChannel
as seen fit.IDs
All
*Id
types have had their internal representations made private. Therefore, the API has changed as follows:ExampleId(12345)
ExampleId::new(12345)
example_id.as_u64()
example_id.get()
Note that all
*Id
types now implementInto<u64>
andInto<i64>
. Additionally, attempting to instantiate an id with a value of0
will panic.Also, the implementations of
FromStr
for theUserId
,RoleId
, andChannelId
types now expect an integer rather than a mention string. The following table shows the new expected input strings:ChannelId
<#​81384788765712384>
81384788765712384
RoleId
<@​&136107769680887808>
136107769680887808
UserId
<@​114941315417899012>
or<@​!114941315417899012>
114941315417899012
Users wishing to parse mentions should either parse into a
Mention
object, or use theutils::{parse_user_mention, parse_role_mention, parse_channel_mention}
methods.Interactions
The various interaction types have been renamed as follows:
ApplicationCommandInteraction
CommandInteraction
MessageComponentInteraction
ComponentInteraction
ModalSubmitInteraction
ModalInteraction
Method names on interaction types have been shortened in the following way:
create_interaction_response
create_response
create_followup_message
create_followup
delete_original_interaction_response
delete_response
delete_followup_message
delete_followup
edit_original_interaction_response
edit_response
edit_followup_message
edit_followup
get_interaction_response
get_response
get_followup_message
get_followup
AutocompleteInteraction
has been merged intoCommandInteraction
, along with its corresponding methods.kind
field has been removed from each of the interaction structs.quick_modal
method has been added toCommandInteraction
andComponentInteraction
. See the docs for more details.Framework
The standard framework is now configurable at runtime, as the
configure
method now takesself
by reference. In line with the builder changes, theConfiguration
andBucketBuilder
builders are no longer closure-based and must be passed in directly. Also, theFramework
trait has been reworked to accomodate more use cases than just text commands:dispatch
method now takes aFullEvent
as argument instead of just aMessage
. This enum contains all the data that is passed to theEventHandler
.init
method has been added, that allows for more complex framework initialization, which can include executing HTTP requests, or accessing cache or shard data.As a result, the trait now accomodates alternative frameworks more easily, such as poise.
Gateway
WsStream
toWsClient
.ShardManagerMonitor
andShardManagerMessage
types have been removed. Their functionality has been replicated via methods directly onShardManager
. Any fields with typeSender<ShardManagerMessage>
, as well as theClient::shard_manager
field, have had their types changed toArc<ShardManager>
. The new methods onShardManager
are the following:return_with_value
shutdown_finished
restart_shard
update_shard_latency_and_stage
ShardClientMessage
andInterMessage
enums were deemed redundant wrappers aroundShardRunnerMessage
and removed - users should useShardRunnerMessage
directly instead.ShardManagerError
type is removed in favor ofGatewayError
.Shard::heartbeat_instants
. Users should instead use thelast_heartbeat_{sent,ack}
methods, which now returnOption<Instant>
instead ofOption<&Instant>
.Shard::heartbeat_interval
to returnOption<Duration>
instead ofOption<u64>
.Shard::check_heartbeat
todo_heartbeat
.ShardMessenger::new
now takes&ShardRunner
as argument instead ofSender<ShardRunnerMessage>
.ShardRunnerMessage::AddCollector
variant in favor of theShardMessenger::add_collector
method. This method adds the collectors immediately, whereasShardRunnerMessage
is polled periodically in a loop - this could occasionally cause collectors to drop the first event they received.serenity::client::bridge::{gateway,voice}::*
have been moved intoserenity::gateway
. They are now gated behind thegateway
feature instead of theclient
feature, however most users use these features in conjunction, and so should not see a change in required-enabled features.MSRV
Serenity now uses Rust edition 2021, with an MSRV of Rust 1.74.
Miscellaneous
Added
thread_id
parameter toHttp::{get,edit,delete}_webhook_message
,Http::execute_webhook}
, as well asWebhook::{get,delete}_message
.audit_log_reason
parameter to manyHttp
methods and builder structs.EventHandler::shards_ready
method.Default
for many model types.button
andselect_menu
methods to the following builders:CreateInteractionResponseMessage
CreateInteractionResponseFollowup
EditInteractionResponse
CreateMessage
EditMessage
EditWebhookMessage
ExecuteWebhook
ChannelId::create_forum_post
andGuildChannel::create_forum_post
.event_handler
andraw_event_handler
fields with pluralizedevent_handlers
andraw_event_handlers
in the following structs:ShardManagerOptions
ShardQueuer
ShardRunner
ShardRunnerOptions
ClientBuilder
ReactionRemoveEmoji
andGuildAuditLogEntryCreate
.serenity::all
module, which re-exports most public items in the crate.CreateButton::custom_id
method.{GuildId, Guild, PartialGuild}::edit_mfa_level
.EditWebhookMessage
endpoint by adding anew_attachments
parameter toHttp::edit_webhook_message
, as well as the following methods to theEditWebhookMessage
builder:attachment
add_existing_attachment
remove_existing_attachment
User::global_name
field, and by making discriminators on usernames optional and non-zero. In particular, thePresenceUser::discriminator
andUser::discriminator
fields are now of typeOption<NonZeroU16>
.{GuildId,Guild,PartialGuild}::current_user_member
method.User::static_face
method, mirroringUser::face
.VOICE_CHANNEL_STATUS_UPDATE
gateway event.GuildId::everyone_role
method.CREATE_EVENTS
andCREATE_GUILD_EXPRESSIONS
permissions, and renameMANAGE_EMOJIS_AND_STICKERS
toMANAGE_GUILD_EXPRESSIONS
(the old name is still present but deprecated).FormattedTimestamp
utility struct for representing a combination of a timestamp and a formatting style.utils::argument_convert::parse_message_url
.Hash
toTimestamp
's derive list.typesize
support.From<Into<String>>
forAutocompleteChoice
.Changed
Request::body_ref
now returnsOption<&T>
instead of&Option<&T>
.Typing::stop
now returnsbool
instead ofOption<()>
. Also,Typing::start
and any wrapper methods are now infallible.async
:ChannelId::name
Context::*
Guild::{members_starting_with, members_containing, members_username_containing, members_nick_containing}
Guild::default_channel
PartialGuild::greater_member_hierarchy
ShardManager::new
UserId::to_user_cached
Error::Http
variant.Guild::member
to returnCow<'_, Member>
instead of justMember
.ShardManagerOptions
to be owned (Arc
is cheap to clone).u8
.RequestBuilder::body
fromOption<&[u8]>
toOption<Vec<u8>>
.MessageInteraction
non-exhaustive, and add amember
field.Permissions::USE_SLASH_COMMANDS
toUSE_APPLICATION_COMMANDS
.constants::OpCode
toOpcode
, and the same forvoice_model::OpCode
.ShardInfo
for tracking Shard ids, and change ids fromu64
tou32
.Message::nonce
field to a customNonce
enum instead of aserde_json::Value
.MembershipState
,ScheduledEventStatus
, andScheduledEventType
non-exhaustive.MessageActivityKind
variants to use CamelCase instead of ALL_CAPS.CurrentPresence
with aPresenceData
struct.ActivityData
in place ofActivity
for setting the current presence.set_activity
methods to take anOption<ActivityData>
to allow for clearing the current presence by passing inNone
.ClientBuilder
, and adding an optionalpresence
parameter toShard::new
.Unknown
variants on enums are now changed toUnknown(u8)
. Also, thenum
method for those enums is removed; users should callu8::from
instead.Member::edit
to edit in place, and returnResult<()>
instead ofResult<Member>
.u32
,u64
, orNonZeroU64
.{GuildId, Guild, PartialGuild}::delete
to returnResult<()>
.impl From<String> for Timestamp
withimpl TryFrom<&str>
.const
:LightMethod::reqwest_method
Ratelimit::{limit, remaining, reset, reset_after}
RequestBuilder::new
Channel::{id, position, name}
Error::is_cache_err
Event::event_type
EventType::name
GatewayIntents::*
Permissions::*
CommonFilterOptions::{filter_limit, collect_limit}
fields fromu32
toNonZeroU32
.GuildChannel::message_count
field fromOption<u8>
toOption<u32>
.serenity::utils::colour
module intoserenity::model
.CreateAllowedMentions::parse
withall_users
,all_roles
, andeveryone
methods.ChannelId::name
to returnResult<String>
instead ofOption<String>
.EventHandler
methods if thecache
feature is disabled. Relevant cache-dependant data is now passed in usingOption
.u32
.Future
forClientBuilder
withIntoFuture
.ClientBuilder::{get_token, get_type_map, get_cache_settings}
infallible.CacheUpdate::Output
forChannelDeleteEvent
from()
toVec<Message>
.Box
:CommandInteraction::member
ComponentInteraction::message
ModalInteraction::message
Message::member
Message::interaction
CreateSelectMenuKind
andComponentInteractionDataKind
enums to better enforce well-formation of requests.http
module by re-exporting all types found in submodules at the top level and removinng access to the submodules themselves.ErrorResponse
non-exhaustive, change theurl
field fromUrl
toString
, and add amethod
field.Http::ratelimiter
field inOption
, and remove the correspondingratelimiter_disabled
field.reason
parameter toHttp::{ban, kick}
, and removeHttp::{ban,kick}_with_reason
.Route
andRouteInfo
enums, and addmethod
andparams
fields to theRequest
struct.model::application
module in the same way thehttp
module was flattened.ThreadMembersUpdateEvent::member_count
field fromu8
toi16
.GuildUpdateEvent::guild
fromPartialGuild
toGuild
Reaction::member
fromOption<PartialMember>
toMember
Integration::guild_id
fromGuildId
toOption<GuildId>
IncidentUpdate::status
fromIncidentStatus
toString
(IncidentStatus
is also removed){Guild,PartialGuild}::premium_subscription_count
fromu64
toOption<u64>
InputText::value
fromString
toOption<String>
CurrentApplicationInfo::owner
fromUser
toOption<User>
ScheduledEventMetadata::location
fromString
toOption<String>
Trigger::KeywordPreset
from a tuple variant to a struct variantIncident::short_link
toshortlink
ThreadDeleteEvent::channels_id
tochannel_ids
ThreadMembersUpdateEvent::removed_members_ids
toremoved_member_ids
InviteTargetType::EmmbeddedApplication
toEmbeddedApplication
Scope::RelactionshipsRead
toRelationshipsRead
CurrentUser
to be a newtype aroundUser
, implement theDeref
trait, and remove theguilds
,invite_url
, andinvite_url_with_oauth2_scopes
methods. The only method now unique toCurrentUser
isedit
. All other methods are available to call via deref coercion.model
types non-exhaustive:model::application::{Interaction, ActionRow, Button, SelectMenu, SelectMenuOption, InputText}
model::application::{PartialCurrentApplicationInfo, Team, TeamMember, InstallParams}
model::channel::{PartialGuildChannel, ChannelMention}
model::gateway::{ActivityEmoji, ClientStatus}
model::guild::{Ban, GuildPrune, GuildInfo, UnavailableGuild, GuildWelcomeScreen}
model::guild::{ScheduledEventMetadata, ScheduledEventUser}
model::guild::automod::{Rule, TriggerMetadata, Action, ActionExecution}
model::misc::EmojiIdentifier
CacheUpdate::Output
forChannelUpdateEvent
from()
toChannel
. Also, make{Guild,PartialGuild}::user_permissions_in
infallible and changeError::InvalidPermissions
into a struct variant containing both the therequired
permissions as well as thepresent
permissions.secrecy::SecretString
to prevent them being leaked throughDebug
implementations, and so that they are zeroed when dropped.String
s to a dedicatedImageHash
type which saves on space by storing the hash directly as bytes.rate_limit_per_user
fields are now counted using au16
.position
fields now hold au16
.positition
fields now hold au16
.auto_archive_position
fields are now an enumAutoArchivePosition
.afk_timeout
fields are now an enumAfkTimeout
.DefaultReaction
struct with aForumEmoji
enum.Sticker::sort_value
field is now anOption<u16>
.min_values
andmax_values
fields for Select Menus now hold au8
.max_age
invite field now holds au32
.max_uses
invite field now holds au8
.ActivityParty
current and maximum size are now of typeu32
.Ready::version
field is now au8
.min_length
andmax_length
fields for Input Text components now hold au16
.mention_total_limit
field for automod triggers now holds au8
.RoleSubscriptionData::total_months_subscribed
field is now au16
.{Http,ChannelId,GuildChannel}::create_public_thread
tocreate_thread_from_message
, and similarly renamecreate_private_thread
tocreate_thread
, to more accurately reflect their behavior. The corresponding endpoints have also been renamed fromChannelPublicThreads
/ChannelPrivateThreads
, toChannelMessageThreads
/ChannelThreads
, respectively.ThreadDelete
event now provides the fullGuildChannel
object for the deleted thread if it is present in the cache.ThreadUpdate
event now provides the old thread'sGuildChannel
object if it is present in the cache.Webhook::source_guild
andWebhook::source_channel
fields have had their types changed fromOption<PartialGuild>
/Option<PartialChannel>
to their ownOption<WebhookGuild>
/Option<WebhookChannel>
types in order to avoid deserialization errors. These new types contain very few fields, but have methods for converting intoPartialGuild
s orChannel
s by querying the API.json::prelude
module with public wrapper functions that abstract over bothserde_json
andsimd-json
.GatewayIntents::GUILD_BANS
toGUILD_MODERATION
(the old name is still present but is deprecated).CreateInteractionResponseMessage::flags
to takeInteractionResponseFlags
instead ofMessageFlags
.ThreadMember
intoPartialThreadMember
.GuildId::audit_logs
.Guild::members_with_status
to returnimpl Iterator<Item = &Member>
instead ofVec<Member>
.Removed
model::application::ResolvedTarget
.model::guild::GuildContainer
.EventHandler::{guild_unavailable, unknown}
.EditProfile::{email, password, new_password}
.serenity::json::from_number
. Users should call.into()
instead.Channel::Category
variant, asGuildChannel::kind
can already beChannelType::Category
. However, theChannel::category
method is still available.Mention::Emoji
variant.serenity::token::parse
- usetoken::validate
instead.absolute_ratelimits
feature and replace it with a runtime configuration option.CacheAndHttp
, and inline it as separatecache
andhttp
fields in the following structs:ShardManagerOptions
ShardQueuer
ShardRunner
ShardRunnerOptions
Client
VoiceServerUpdateEvent::channel_id
ResumedEvent::channel_id
Ready::{presences, private_channels, trace}
InviteGuild::{text_channel_count, voice_channel_count}
VoiceState::token
IncidentUpdate::affected_components
(and also theAffectedComponent
struct)Maintenance::{description, stop, start}
SelectMenu::values
MessageUpdateEvent::{author, timestamp, nonce, kind, stickers}
PartialGuild::{owner, permissions}
InviteTargetType::Normal
Trigger::HarmfulLink
FromStrAndCache
andStrExt
traits. Also removesmodel::{ChannelParseError,RoleParseError}
, which conflicted with types of the same name fromutils
.model
from themodel::prelude
, and don't re-export types from other libraries, likeDeserialize
orHashMap
.DefaultAvatar
enum.PartialOrd
/Ord
:EventType
enum. Instead ofEvent::event_type().name()
, users should just callEvent::name
.PingInteraction::guild_locale
field.v0.11.7
Compare Source
Thanks to the following for their contributions:
Notable changes
MessageComponentInteraction::edit_original_message()
for editing the original message of the message component.std::str::FromStr
for the ID types to allow converting from a string. This does not affect the pre-existing implementation onChannelId
,RoleId
, andUserId
.set_components()
methods onEditInteractionResponse
andEditWebhookMessage
delete_reaction
anddelete_reactions
methods for deleting reactions toChannelId
,GuildChannel
, andMessage
.base64
dependency to0.21
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.