treefmt-check
x86_64-linux.formatting
· build #25
· raw
1treefmt v2.5.0traversed 21 files2emitted 10 files for processing3formatted 10 files (1 changed) in 566ms4 M src/handlers.rs5diff --git a/src/handlers.rs b/src/handlers.rs6index 1704a15..65187fd 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@@ -853,7 +838,10 @@ mod tests {148 let server = wiremock::MockServer::start().await;149 150 Mock::given(method("GET"))151- .and(path(format!("/api/v1/repos/{}/{}", organization, repo_name)))152+ .and(path(format!(153+ "/api/v1/repos/{}/{}",154+ organization, repo_name155+ )))156 .respond_with(ResponseTemplate::new(status).set_body_json(body))157 .mount(&server)158 .await;159@@ -862,12 +850,8 @@ mod tests {160 }161 162 fn make_cloner(forgejo_url: &str) -> Cloner {163- Cloner::new(164- Url::parse(forgejo_url).unwrap(),165- "test-token",166- "test-org",167- )168- .expect("Failed to create Cloner")169+ Cloner::new(Url::parse(forgejo_url).unwrap(), "test-token", "test-org")170+ .expect("Failed to create Cloner")171 }172 173 fn mock_forgejo_repo_json(html_url: Option<&str>) -> serde_json::Value {174@@ -924,15 +908,21 @@ mod tests {175 "test-org",176 "octocat-Hello-World",177 200,178- mock_forgejo_repo_json(Some("https://forgejo.example.com/test-org/octocat-Hello-World")),179- ).await;180+ mock_forgejo_repo_json(Some(181+ "https://forgejo.example.com/test-org/octocat-Hello-World",182+ )),183+ )184+ .await;185 186 let cloner = make_cloner(&forgejo.uri());187 let link = GitHubLink::try_from("https://github.com/octocat/Hello-World").unwrap();188 let event = make_room_message_event();189 190 let result = process_link_content(&link, &cloner, &event, &room).await;191- assert!(result.is_ok(), "process_link_content should succeed when already cloned");192+ assert!(193+ result.is_ok(),194+ "process_link_content should succeed when already cloned"195+ );196 }197 198 #[tokio::test]199@@ -947,14 +937,18 @@ mod tests {200 "octocat-Hello-World",201 500,202 serde_json::json!({"message": "Internal Server Error"}),203- ).await;204+ )205+ .await;206 207 let cloner = make_cloner(&forgejo.uri());208 let link = GitHubLink::try_from("https://github.com/octocat/Hello-World").unwrap();209 let event = make_room_message_event();210 211 let result = process_link_content(&link, &cloner, &event, &room).await;212- assert!(result.is_ok(), "process_link_content should handle Forgejo errors gracefully");213+ assert!(214+ result.is_ok(),215+ "process_link_content should handle Forgejo errors gracefully"216+ );217 }218 219 #[tokio::test]220@@ -969,7 +963,8 @@ mod tests {221 "octocat-Hello-World",222 404,223 serde_json::json!({"message": "not found"}),224- ).await;225+ )226+ .await;227 228 let github_server = wiremock::MockServer::start().await;229 230@@ -1003,7 +998,10 @@ mod tests {231 let event = make_room_message_event();232 233 let result = process_link_content(&link, &cloner, &event, &room).await;234- assert!(result.is_ok(), "process_link_content should succeed when GitHub repo not found");235+ assert!(236+ result.is_ok(),237+ "process_link_content should succeed when GitHub repo not found"238+ );239 }240 241 // ---------------------------------------------------------------------------242@@ -1012,9 +1010,7 @@ mod tests {243 244 use tokio::sync::mpsc;245 246- async fn make_test_bot_context(247- clone_queue: mpsc::Sender<CloneRequest>,248- ) -> BotContext {249+ async fn make_test_bot_context(clone_queue: mpsc::Sender<CloneRequest>) -> BotContext {250 let forgejo = wiremock::MockServer::start().await;251 let cloner = Cloner::new(252 Url::parse(&format!("{}/", forgejo.uri())).unwrap(),253@@ -1045,7 +1041,8 @@ mod tests {254 let (tx, mut rx) = mpsc::channel::<CloneRequest>(1);255 let ctx = make_test_bot_context(tx).await;256 257- let text_content = TextMessageEventContent::plain("!clone https://github.com/octocat/Hello-World");258+ let text_content =259+ TextMessageEventContent::plain("!clone https://github.com/octocat/Hello-World");260 let event_id = event_id!("$clone_event:localhost");261 262 handle_clone_command(&ctx, event_id.to_owned(), &room, &text_content).await;263@@ -1067,12 +1064,17 @@ mod tests {264 let (tx, mut _rx) = mpsc::channel::<CloneRequest>(1);265 let ctx = make_test_bot_context(tx).await;266 267- let text_content = TextMessageEventContent::plain("!clone https://github.com/a/b and https://github.com/c/d");268+ let text_content = TextMessageEventContent::plain(269+ "!clone https://github.com/a/b and https://github.com/c/d",270+ );271 let event_id = event_id!("$clone_event:localhost");272 273 handle_clone_command(&ctx, event_id.to_owned(), &room, &text_content).await;274 275 let request = _rx.try_recv();276- assert!(request.is_err(), "No clone request should be queued for multiple links");277+ assert!(278+ request.is_err(),279+ "No clone request should be queued for multiple links"280+ );281 }282 }