Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(clippy): Resolve Clippy 1.80 lints #2366

Merged
merged 2 commits into from
Aug 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,4 @@ edition = "2021"
include = ["src/**/*.rs", "README.md"]
license = "ISC"
repository = "https://github.com/twilight-rs/twilight.git"
rust-version = "1.67"
rust-version = "1.79"
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ functionality. Please use the individual crates listed below instead!

## Installation

Twilight supports a MSRV of Rust 1.67.
Twilight supports a MSRV of Rust 1.79.

We recommend that most users start out with these crates:

Expand Down Expand Up @@ -98,9 +98,9 @@ Utility crate that adds utilities to the twilight ecosystem that do not fit
in any other crate. Currently, it contains:

- A trait to make extracting data from Discord identifiers (Snowflakes)
easier;
easier;
- A calculator to calculate the permissions of a member in a guild or
channel.
channel.

### [`twilight-gateway-queue`]

Expand Down Expand Up @@ -201,7 +201,7 @@ All first-party crates are licensed under [ISC][LICENSE.md]
[license badge]: https://img.shields.io/badge/license-ISC-blue.svg?style=for-the-badge&logo=pastebin
[license link]: https://github.com/twilight-rs/twilight/blob/main/LICENSE.md
[logo]: https://raw.githubusercontent.com/twilight-rs/twilight/main/logo.png
[rust badge]: https://img.shields.io/badge/rust-1.67+-93450a.svg?style=for-the-badge&logo=rust
[rust badge]: https://img.shields.io/badge/rust-1.79+-93450a.svg?style=for-the-badge&logo=rust
[`twilight-cache-inmemory`]: https://twilight.rs/chapter_1_crates/section_4_cache_inmemory.html
[`twilight-gateway-queue`]: https://twilight.rs/chapter_1_crates/section_7_first_party/section_5_gateway_queue.html
[`twilight-gateway`]: https://twilight.rs/chapter_1_crates/section_3_gateway.html
Expand Down
2 changes: 1 addition & 1 deletion book/src/versions/0.15/2023-09-10.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ twilight-model no longer depends on `tracing`.

## MSRV

All twilight ecosystem crates now target a MSRV of rustc 1.67. This was necessary
All twilight ecosystem crates now target a MSRV of rustc 1.79. This was necessary
due to MSRV increases in our dependencies.

## Performance Improvements
Expand Down
2 changes: 1 addition & 1 deletion twilight-cache-inmemory/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,4 @@ All first-party crates are licensed under [ISC][LICENSE.md]
[github link]: https://github.com/twilight-rs/twilight
[license badge]: https://img.shields.io/badge/license-ISC-blue.svg?style=for-the-badge&logo=pastebin
[license link]: https://github.com/twilight-rs/twilight/blob/main/LICENSE.md
[rust badge]: https://img.shields.io/badge/rust-1.67+-93450a.svg?style=for-the-badge&logo=rust
[rust badge]: https://img.shields.io/badge/rust-1.79+-93450a.svg?style=for-the-badge&logo=rust
3 changes: 1 addition & 2 deletions twilight-cache-inmemory/src/event/reaction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,7 @@ impl<CacheModels: CacheableModels> UpdateCache<CacheModels> for ReactionAdd {
} else {
let me = cache
.current_user()
.map(|user| user.id() == self.0.user_id)
.unwrap_or_default();
.is_some_and(|user| user.id() == self.0.user_id);

message.add_reaction(Reaction {
burst_colors: Vec::new(),
Expand Down
9 changes: 3 additions & 6 deletions twilight-cache-inmemory/src/event/sticker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -112,13 +112,11 @@ mod tests {
assert!(cache
.stickers
.get(&STICKER_ONE_ID)
.map(|r| r.id == STICKER_ONE_ID)
.unwrap_or_default());
.is_some_and(|r| r.id == STICKER_ONE_ID));
assert!(cache
.stickers
.get(&STICKER_TWO_ID)
.map(|r| r.id == STICKER_TWO_ID)
.unwrap_or_default());
.is_some_and(|r| r.id == STICKER_TWO_ID));

let guild_stickers = cache
.guild_stickers
Expand All @@ -145,8 +143,7 @@ mod tests {
assert!(cache
.stickers
.get(&STICKER_ONE_ID)
.map(|r| r.id == STICKER_ONE_ID)
.unwrap_or_default());
.is_some_and(|r| r.id == STICKER_ONE_ID));
let guild_stickers = cache
.guild_stickers
.get(&GUILD_ID)
Expand Down
22 changes: 10 additions & 12 deletions twilight-cache-inmemory/src/event/voice_state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,11 @@ impl<CacheModels: CacheableModels> InMemoryCache<CacheModels> {
let remove_channel_mapping = self
.voice_state_channels
.get_mut(&voice_state.channel_id())
.map(|mut channel_voice_states| {
.is_some_and(|mut channel_voice_states| {
channel_voice_states.remove(&(guild_id, user_id));

channel_voice_states.is_empty()
})
.unwrap_or_default();
});

if remove_channel_mapping {
self.voice_state_channels.remove(&voice_state.channel_id());
Expand All @@ -54,15 +53,14 @@ impl<CacheModels: CacheableModels> InMemoryCache<CacheModels> {
} else {
// voice channel_id does not exist, signifying that the user has left
{
let remove_guild = self
.voice_state_guilds
.get_mut(&guild_id)
.map(|mut guild_users| {
guild_users.remove(&user_id);

guild_users.is_empty()
})
.unwrap_or_default();
let remove_guild =
self.voice_state_guilds
.get_mut(&guild_id)
.is_some_and(|mut guild_users| {
guild_users.remove(&user_id);

guild_users.is_empty()
});

if remove_guild {
self.voice_state_guilds.remove(&guild_id);
Expand Down
7 changes: 3 additions & 4 deletions twilight-cache-inmemory/src/permission.rs
Original file line number Diff line number Diff line change
Expand Up @@ -562,8 +562,7 @@ impl<'a, CacheModels: CacheableModels> InMemoryCachePermissions<'a, CacheModels>
self.cache
.guilds
.get(&guild_id)
.map(|r| r.owner_id() == user_id)
.unwrap_or_default()
.is_some_and(|r| r.owner_id() == user_id)
}

/// Retrieve a member's roles' permissions and the guild's `@everyone`
Expand Down Expand Up @@ -1045,8 +1044,8 @@ mod tests {
/// In particular, we want to test that:
///
/// - if a member is timed out they will be limited to the intersection of
/// the [`Permissions::READ_MESSAGE_HISTORY`] and
/// [`Permissions::VIEW_CHANNEL`] permissions on a [guild level][`root`]
/// the [`Permissions::READ_MESSAGE_HISTORY`] and
/// [`Permissions::VIEW_CHANNEL`] permissions on a [guild level][`root`]
/// - the same is true on a [channel level][`in_channel`]
/// - administrators are never timed out
/// - checking whether the member's communication is disabled is configurable
Expand Down
2 changes: 1 addition & 1 deletion twilight-gateway-queue/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,4 +28,4 @@ a HTTP client and server implementation, respectively.
[github link]: https://github.com/twilight-rs/twilight
[license badge]: https://img.shields.io/badge/license-ISC-blue.svg?style=for-the-badge&logo=pastebin
[license link]: https://github.com/twilight-rs/twilight/blob/main/LICENSE.md
[rust badge]: https://img.shields.io/badge/rust-1.67+-93450a.svg?style=for-the-badge&logo=rust
[rust badge]: https://img.shields.io/badge/rust-1.79+-93450a.svg?style=for-the-badge&logo=rust
2 changes: 1 addition & 1 deletion twilight-gateway/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,4 +120,4 @@ There are a few additional examples located in the
[github link]: https://github.com/twilight-rs/twilight
[license badge]: https://img.shields.io/badge/license-ISC-blue.svg?style=for-the-badge&logo=pastebin
[license link]: https://github.com/twilight-rs/twilight/blob/main/LICENSE.md
[rust badge]: https://img.shields.io/badge/rust-1.67+-93450a.svg?style=for-the-badge&logo=rust
[rust badge]: https://img.shields.io/badge/rust-1.79+-93450a.svg?style=for-the-badge&logo=rust
2 changes: 1 addition & 1 deletion twilight-http-ratelimiting/src/in_memory/bucket.rs
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ impl BucketQueueTask {
const WAIT: Duration = Duration::from_secs(10);

/// Create a new task to manage the ratelimit for a [`Bucket`].
pub fn new(
pub const fn new(
bucket: Arc<Bucket>,
buckets: Arc<Mutex<HashMap<Path, Arc<Bucket>>>>,
global: Arc<GlobalLockPair>,
Expand Down
2 changes: 1 addition & 1 deletion twilight-http/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,4 +107,4 @@ DNS resolver on the application level.
[github link]: https://github.com/twilight-rs/twilight
[license badge]: https://img.shields.io/badge/license-ISC-blue.svg?style=for-the-badge&logo=pastebin
[license link]: https://github.com/twilight-rs/twilight/blob/main/LICENSE.md
[rust badge]: https://img.shields.io/badge/rust-1.67+-93450a.svg?style=for-the-badge&logo=rust
[rust badge]: https://img.shields.io/badge/rust-1.79+-93450a.svg?style=for-the-badge&logo=rust
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ impl<'a> UpdateCurrentUserVoiceState<'a> {
/// # Caveats
///
/// - You are able to set `request_to_speak_timestamp` to any present or
/// future time.
/// future time.
pub const fn request_to_speak_timestamp(mut self, request_to_speak_timestamp: &'a str) -> Self {
if request_to_speak_timestamp.is_empty() {
self.fields.request_to_speak_timestamp = Some(Nullable(None));
Expand All @@ -79,7 +79,7 @@ impl<'a> UpdateCurrentUserVoiceState<'a> {
/// # Caveats
///
/// - You must have the `MUTE_MEMBERS` permission to unsuppress yourself.
/// You can always suppress yourself.
/// - You can always suppress yourself.
pub const fn suppress(mut self) -> Self {
self.fields.suppress = Some(true);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,10 @@ impl<'a> UpdateUserVoiceState<'a> {
///
/// - You must have the [`MUTE_MEMBERS`] permission to use this method.
/// - When unsuppressed, non-bot users will have their
/// `request_to_speak_timestamp` set to the current time. Bot users will
/// not.
/// `request_to_speak_timestamp` set to the current time. Bot users will
/// not.
/// - When suppressed, the user will have their `request_to_speak_timestamp`
/// removed.
/// removed.
///
/// [`MUTE_MEMBERS`]: twilight_model::guild::Permissions::MUTE_MEMBERS
pub const fn suppress(mut self) -> Self {
Expand Down
2 changes: 1 addition & 1 deletion twilight-lavalink/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,4 +121,4 @@ There is also an example of a basic bot located in the [root of the
[license link]: https://github.com/twilight-rs/twilight/blob/main/LICENSE.md
[node]: Node
[process]: Lavalink::process
[rust badge]: https://img.shields.io/badge/rust-1.67+-93450a.svg?style=for-the-badge&logo=rust
[rust badge]: https://img.shields.io/badge/rust-1.79+-93450a.svg?style=for-the-badge&logo=rust
2 changes: 1 addition & 1 deletion twilight-mention/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,4 @@ let message = format!("Hey there, {}!", user_id.mention());
[github link]: https://github.com/twilight-rs/twilight
[license badge]: https://img.shields.io/badge/license-ISC-blue.svg?style=for-the-badge&logo=pastebin
[license link]: https://github.com/twilight-rs/twilight/blob/main/LICENSE.md
[rust badge]: https://img.shields.io/badge/rust-1.67+-93450a.svg?style=for-the-badge&logo=rust
[rust badge]: https://img.shields.io/badge/rust-1.79+-93450a.svg?style=for-the-badge&logo=rust
2 changes: 1 addition & 1 deletion twilight-model/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,4 @@ Some models have associated builders, which can be found in the
[github link]: https://github.com/twilight-rs/twilight
[license badge]: https://img.shields.io/badge/license-ISC-blue.svg?style=for-the-badge&logo=pastebin
[license link]: https://github.com/twilight-rs/twilight/blob/main/LICENSE.md
[rust badge]: https://img.shields.io/badge/rust-1.67+-93450a.svg?style=for-the-badge&logo=rust
[rust badge]: https://img.shields.io/badge/rust-1.79+-93450a.svg?style=for-the-badge&logo=rust
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ impl UserIdsError {
(self.kind, None)
}

fn too_many(ids: Vec<Id<UserMarker>>) -> Self {
const fn too_many(ids: Vec<Id<UserMarker>>) -> Self {
Self {
kind: UserIdsErrorType::TooMany { ids },
}
Expand Down
8 changes: 2 additions & 6 deletions twilight-model/src/id/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -354,17 +354,13 @@ impl<T> PartialEq for Id<T> {

impl<T> PartialEq<i64> for Id<T> {
fn eq(&self, other: &i64) -> bool {
u64::try_from(*other)
.map(|v| v == self.value.get())
.unwrap_or_default()
u64::try_from(*other).is_ok_and(|v| v == self.value.get())
}
}

impl<T> PartialEq<Id<T>> for i64 {
fn eq(&self, other: &Id<T>) -> bool {
u64::try_from(*self)
.map(|v| v == other.value.get())
.unwrap_or_default()
u64::try_from(*self).is_ok_and(|v| v == other.value.get())
}
}

Expand Down
2 changes: 1 addition & 1 deletion twilight-standby/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,4 +139,4 @@ For more examples, check out each of the methods on [`Standby`].
[github link]: https://github.com/twilight-rs/twilight
[license badge]: https://img.shields.io/badge/license-ISC-blue.svg?style=for-the-badge&logo=pastebin
[license link]: https://github.com/twilight-rs/twilight/blob/main/LICENSE.md
[rust badge]: https://img.shields.io/badge/rust-1.67+-93450a.svg?style=for-the-badge&logo=rust
[rust badge]: https://img.shields.io/badge/rust-1.79+-93450a.svg?style=for-the-badge&logo=rust
2 changes: 1 addition & 1 deletion twilight-util/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,5 @@ structured information from [Discord snowflakes].
[github link]: https://github.com/twilight-rs/twilight
[license badge]: https://img.shields.io/badge/license-ISC-blue.svg?style=for-the-badge&logo=pastebin
[license link]: https://github.com/twilight-rs/twilight/blob/main/LICENSE.md
[rust badge]: https://img.shields.io/badge/rust-1.67+-93450a.svg?style=for-the-badge&logo=rust
[rust badge]: https://img.shields.io/badge/rust-1.79+-93450a.svg?style=for-the-badge&logo=rust
[Discord snowflakes]: https://discord.com/developers/docs/reference#snowflakes
2 changes: 1 addition & 1 deletion twilight-util/src/link/webhook.rs
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ pub fn parse(url: &str) -> Result<(Id<WebhookMarker>, Option<&str>), WebhookPars
let mut token = segments.next();

// Don't return an empty token if the segment is empty.
if token.map(str::is_empty).unwrap_or_default() {
if token.is_some_and(str::is_empty) {
token = None;
}

Expand Down
8 changes: 4 additions & 4 deletions twilight-util/src/permission_calculator/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
//! like:
//!
//! - `@everyone` role is allowed the [Embed Links] and [Add Reactions]
//! permissions; and
//! permissions; and
//! - member is denied the [Send Messages] permission.
//!
//! Taking into account the guild root-level permissions and the permission
Expand Down Expand Up @@ -230,11 +230,11 @@ impl<'a> PermissionCalculator<'a> {
/// circumstances:
///
/// - When the permission is denied on the role level and
/// isn't enabled on a role or member permission overwrite;
/// isn't enabled on a role or member permission overwrite;
/// - When the permission is denied on a role permission overwrite but isn't
/// enabled on a member permission overwrite; or
/// enabled on a member permission overwrite; or
/// - When permission isn't enabled on a guild level and isn't enabled via a
/// permission overwrite.
/// permission overwrite.
///
/// When the [Send Messages] permission is denied and is not similarly
/// enabled like above then the [Attach Files], [Embed Links],
Expand Down
2 changes: 1 addition & 1 deletion twilight-validate/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,4 @@ manually validating any models from [`twilight-model`].
[github link]: https://github.com/twilight-rs/twilight
[license badge]: https://img.shields.io/badge/license-ISC-blue.svg?style=for-the-badge&logo=pastebin
[license link]: https://github.com/twilight-rs/twilight/blob/main/LICENSE.md
[rust badge]: https://img.shields.io/badge/rust-1.67+-93450a.svg?style=for-the-badge&logo=rust
[rust badge]: https://img.shields.io/badge/rust-1.79+-93450a.svg?style=for-the-badge&logo=rust