treefmt-check
x86_64-linux.formatting
· build #27
· raw
1treefmt v2.5.0traversed 21 files2emitted 10 files for processing3formatted 10 files (1 changed) in 99ms4 M src/handlers.rs5diff --git a/src/handlers.rs b/src/handlers.rs6index ea193db..6fdf8b0 1006447--- a/src/handlers.rs8+++ b/src/handlers.rs9@@ -3,7 +3,9 @@ use std::time::Duration;10 11 use mxlink::matrix_sdk::deserialized_responses::{TimelineEvent, TimelineEventKind};12 use mxlink::matrix_sdk::ruma::events::OriginalSyncMessageLikeEvent;13+use mxlink::matrix_sdk::ruma::events::relation::{Reply, Thread};14 use mxlink::matrix_sdk::ruma::events::room::message::MessageType;15+use mxlink::matrix_sdk::ruma::events::room::message::Relation;16 use mxlink::matrix_sdk::{17 Room,18 ruma::{19@@ -21,8 +23,6 @@ use mxlink::matrix_sdk::{20 },21 };22 use mxlink::{CallbackError, MessageResponseType};23-use mxlink::matrix_sdk::ruma::events::room::message::Relation;24-use mxlink::matrix_sdk::ruma::events::relation::{Reply, Thread};25 use scraper::{Html, Selector};26 use tokio::sync::RwLock;27 use tokio::time::timeout;28@@ -75,10 +75,7 @@ impl BotCommand {29 }30 }31 32-fn apply_response_type(33- content: &mut RoomMessageEventContent,34- response_type: MessageResponseType,35-) {36+fn apply_response_type(content: &mut RoomMessageEventContent, response_type: MessageResponseType) {37 match response_type {38 MessageResponseType::InRoom => {}39 MessageResponseType::Reply(event_id) => {40@@ -105,11 +102,7 @@ fn apply_response_type(41 ///42 /// This function does not return a meaningful value (`()`).43 ///44-async fn clone_and_respond(45- cloner: &Cloner,46- room: &Room,47- link: &GitHubLink,48-) {49+async fn clone_and_respond(cloner: &Cloner, room: &Room, link: &GitHubLink) {50 // Wait for up to 10 seconds for the clone to complete51 let clone_timeout = 10;52 let long_clone_timeout = Duration::from_secs(clone_timeout);53@@ -398,11 +391,7 @@ pub async fn handle_github_links_in_message(54 /// - `text` (`String`) - Content of the message in text or markdown.55 /// - `response_type` (`MessageResponseType`) - The response type.56 ///57-async fn send_room_message_or_log(58- room: &Room,59- text: String,60- response_type: MessageResponseType,61-) {62+async fn send_room_message_or_log(room: &Room, text: String, response_type: MessageResponseType) {63 let mut content = RoomMessageEventContent::text_markdown(text);64 apply_response_type(&mut content, response_type);65 if let Err(e) = room.send(content).await {66@@ -443,12 +432,7 @@ async fn respond_to_whitelist(67 "Internal error".to_string()68 }69 };70- send_room_message_or_log(71- room,72- response_text,73- MessageResponseType::Reply(event_id),74- )75- .await;76+ send_room_message_or_log(room, response_text, MessageResponseType::Reply(event_id)).await;77 }78 79 /// Get the user mentioned in an HTML string.80@@ -753,11 +737,9 @@ mod tests {81 // Tests for extract_original_link82 // ---------------------------------------------------------------------------83 84- use mxlink::matrix_sdk::deserialized_responses::{85- TimelineEvent,86- };87 use matrix_sdk_test::event_factory::EventFactory;88- use mxlink::matrix_sdk::ruma::{room_id, user_id, event_id, owned_user_id};89+ use mxlink::matrix_sdk::deserialized_responses::TimelineEvent;90+ use mxlink::matrix_sdk::ruma::{event_id, owned_user_id, room_id, user_id};91 92 /// Create a `TimelineEvent` with a plain text message event whose body starts93 /// with `MESSAGE_PREFIX` and contains the given GitHub link.94@@ -778,12 +760,8 @@ mod tests {95 crate::handlers::MESSAGE_PREFIX96 );97 let timeline = make_message_timeline_event(&body);98- let link = extract_original_link(timeline)99- .expect("extract_original_link should succeed");100- assert_eq!(101- link.to_string(),102- "https://github.com/octocat/Hello-World"103- );104+ let link = extract_original_link(timeline).expect("extract_original_link should succeed");105+ assert_eq!(link.to_string(), "https://github.com/octocat/Hello-World");106 }107 108 #[test]109@@ -820,25 +798,32 @@ mod tests {110 use crate::cloner::Cloner;111 use crate::githublink::GitHubLink;112 use mxlink::matrix_sdk::{113- test_utils::mocks::MatrixMockServer,114- ruma::events::room::message::RoomMessageEventContent,115+ ruma::events::room::message::RoomMessageEventContent, test_utils::mocks::MatrixMockServer,116 };117+ use std::sync::OnceLock;118 use url::Url;119 use wiremock::{120 Mock, ResponseTemplate,121 matchers::{method, path},122 };123- use std::sync::OnceLock;124 125 /// Set up a Matrix client synced with a joined room.126 /// Returns (client, `MatrixMockServer`, room) tuple.127 async fn setup_matrix_room(128 room_id: &mxlink::matrix_sdk::ruma::RoomId,129- ) -> (mxlink::matrix_sdk::Client, MatrixMockServer, mxlink::matrix_sdk::Room) {130+ ) -> (131+ mxlink::matrix_sdk::Client,132+ MatrixMockServer,133+ mxlink::matrix_sdk::Room,134+ ) {135 let mock_server = MatrixMockServer::new().await;136 let client = mock_server.client_builder().build().await;137 138- mock_server.mock_room_state_encryption().plain().mount().await;139+ mock_server140+ .mock_room_state_encryption()141+ .plain()142+ .mount()143+ .await;144 let room = mock_server.sync_joined_room(&client, room_id).await;145 146 (client, mock_server, room)147@@ -862,12 +847,8 @@ mod tests {148 }149 150 fn make_cloner(forgejo_url: &str) -> Cloner {151- Cloner::new(152- Url::parse(forgejo_url).unwrap(),153- "test-token",154- "test-org",155- )156- .expect("Failed to create Cloner")157+ Cloner::new(Url::parse(forgejo_url).unwrap(), "test-token", "test-org")158+ .expect("Failed to create Cloner")159 }160 161 fn mock_forgejo_repo_json(html_url: Option<&str>) -> serde_json::Value {162@@ -924,15 +905,21 @@ mod tests {163 "test-org",164 "octocat-Hello-World",165 200,166- mock_forgejo_repo_json(Some("https://forgejo.example.com/test-org/octocat-Hello-World")),167- ).await;168+ mock_forgejo_repo_json(Some(169+ "https://forgejo.example.com/test-org/octocat-Hello-World",170+ )),171+ )172+ .await;173 174 let cloner = make_cloner(&forgejo.uri());175 let link = GitHubLink::try_from("https://github.com/octocat/Hello-World").unwrap();176 let event = make_room_message_event();177 178 let result = process_link_content(&link, &cloner, &event, &room).await;179- assert!(result.is_ok(), "process_link_content should succeed when already cloned");180+ assert!(181+ result.is_ok(),182+ "process_link_content should succeed when already cloned"183+ );184 }185 186 #[tokio::test]187@@ -947,14 +934,18 @@ mod tests {188 "octocat-Hello-World",189 500,190 serde_json::json!({"message": "Internal Server Error"}),191- ).await;192+ )193+ .await;194 195 let cloner = make_cloner(&forgejo.uri());196 let link = GitHubLink::try_from("https://github.com/octocat/Hello-World").unwrap();197 let event = make_room_message_event();198 199 let result = process_link_content(&link, &cloner, &event, &room).await;200- assert!(result.is_ok(), "process_link_content should handle Forgejo errors gracefully");201+ assert!(202+ result.is_ok(),203+ "process_link_content should handle Forgejo errors gracefully"204+ );205 }206 207 #[tokio::test]208@@ -972,10 +963,11 @@ mod tests {209 "octocat-Hello-World",210 404,211 serde_json::json!({"message": "not found"}),212- ).await;213+ )214+ .await;215 216 let github_server = wiremock::MockServer::start().await;217- 218+219 INIT_CRYPTO.get_or_init(|| {220 let _ = rustls::crypto::ring::default_provider().install_default();221 });222@@ -1003,7 +995,10 @@ mod tests {223 let event = make_room_message_event();224 225 let result = process_link_content(&link, &cloner, &event, &room).await;226- assert!(result.is_ok(), "process_link_content should succeed when GitHub repo not found");227+ assert!(228+ result.is_ok(),229+ "process_link_content should succeed when GitHub repo not found"230+ );231 }232 233 // ---------------------------------------------------------------------------234@@ -1012,9 +1007,7 @@ mod tests {235 236 use tokio::sync::mpsc;237 238- async fn make_test_bot_context(239- clone_queue: mpsc::Sender<CloneRequest>,240- ) -> BotContext {241+ async fn make_test_bot_context(clone_queue: mpsc::Sender<CloneRequest>) -> BotContext {242 let forgejo = wiremock::MockServer::start().await;243 let cloner = Cloner::new(244 Url::parse(&format!("{}/", forgejo.uri())).unwrap(),245@@ -1045,7 +1038,8 @@ mod tests {246 let (tx, mut rx) = mpsc::channel::<CloneRequest>(1);247 let ctx = make_test_bot_context(tx).await;248 249- let text_content = TextMessageEventContent::plain("!clone https://github.com/octocat/Hello-World");250+ let text_content =251+ TextMessageEventContent::plain("!clone https://github.com/octocat/Hello-World");252 let event_id = event_id!("$clone_event:localhost");253 254 handle_clone_command(&ctx, event_id.to_owned(), &room, &text_content).await;255@@ -1067,12 +1061,17 @@ mod tests {256 let (tx, mut rx) = mpsc::channel::<CloneRequest>(1);257 let ctx = make_test_bot_context(tx).await;258 259- let text_content = TextMessageEventContent::plain("!clone https://github.com/a/b and https://github.com/c/d");260+ let text_content = TextMessageEventContent::plain(261+ "!clone https://github.com/a/b and https://github.com/c/d",262+ );263 let event_id = event_id!("$clone_event:localhost");264 265 handle_clone_command(&ctx, event_id.to_owned(), &room, &text_content).await;266 267 let request = rx.try_recv();268- assert!(request.is_err(), "No clone request should be queued for multiple links");269+ assert!(270+ request.is_err(),271+ "No clone request should be queued for multiple links"272+ );273 }274 }