From 18a56f4454f51ea1331ecef1e2640cc21b568430 Mon Sep 17 00:00:00 2001 From: Julien Rabier Date: Thu, 30 Oct 2025 15:22:15 +0100 Subject: [PATCH] modernize code --- Cargo.toml | 6 +++--- src/main.rs | 20 +++++++++++--------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 9c8568f..cb075f0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,11 +1,11 @@ [package] name = "mpdyn" -version = "0.1.2" +version = "0.1.3" authors = ["Julien Rabier "] -edition = "2021" +edition = "2024" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] mpdrs = "0.1.0" -rand = "0.8.4" +rand = "0.9.2" diff --git a/src/main.rs b/src/main.rs index 6f7cdcf..06f9ac6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,6 @@ use mpdrs::lsinfo::LsInfoResponse; use mpdrs::{Client, Song}; -use rand::prelude::*; +use rand::{prelude::*, rng}; use std::{error::Error, thread, time}; fn main() -> Result<(), Box> { @@ -40,16 +40,18 @@ fn populate_playlist(a: u32) -> Result<(), Box> { } fn get_random_tracks(n: u32) -> Result, Box> { - let mut rng = rand::thread_rng(); + let mut rng = rng(); let query_albums = Client::default().lsinfo("/")?; - let tracks: Vec = query_albums - .choose_multiple(&mut rng, n.try_into()?) - .filter(|&x| match_directory(x).is_ok()) - .map(find_path) - .filter_map(|x| Some(get_random_track(x)).unwrap()) - .collect(); + let tracks: Vec = Iterator::filter_map( + query_albums + .choose_multiple(&mut rng, n.try_into()?) + .filter(|&x| match_directory(x).is_ok()) + .map(find_path), + get_random_track, + ) + .collect(); Ok(tracks) } @@ -65,7 +67,7 @@ fn match_directory(response: &LsInfoResponse) -> Result { } fn get_random_track(path: &str) -> Option { - let mut rng = rand::thread_rng(); + let mut rng = rng(); match Client::default().lsinfo(path) { Ok(songs) => match songs.choose(&mut rng) {