From 179264ee902afe635e7f46dbe7f7b8cf06fc1285 Mon Sep 17 00:00:00 2001 From: viridian Date: Sun, 11 Feb 2024 18:24:46 +0100 Subject: [PATCH] Format --- src/ap/mod.rs | 68 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 44 insertions(+), 24 deletions(-) diff --git a/src/ap/mod.rs b/src/ap/mod.rs index e6eac78..ccf6bb0 100644 --- a/src/ap/mod.rs +++ b/src/ap/mod.rs @@ -1,7 +1,7 @@ -use serde_json; use serde::{Deserialize, Serialize}; +use serde_json; -#[derive(Serialize, Deserialize,Debug)] +#[derive(Serialize, Deserialize, Debug)] pub struct Actor { #[serde(rename = "type")] pub object_type: ObjectType, @@ -13,19 +13,18 @@ pub struct Actor { pub inbox: String, // Link to collection where notes will be posted to pub outbox: String, // Link to notes by this user pub summary: Option, // Bio - pub icon: Option, // Link to pfp + pub icon: Option, // Link to pfp } -#[derive(Serialize, Deserialize,Debug,PartialEq)] +#[derive(Serialize, Deserialize, Debug, PartialEq)] pub struct Icon { #[serde(rename = "type")] media_type: String, #[serde(rename = "mediaType")] media_mime_type: String, url: String, - } -#[derive(Serialize, Deserialize,Debug,PartialEq)] +#[derive(Serialize, Deserialize, Debug, PartialEq)] pub enum ObjectType { Person, Like, @@ -33,7 +32,7 @@ pub enum ObjectType { Tombstone, } impl std::fmt::Display for ObjectType { - fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result{ + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { match self { ObjectType::Person => write!(f, "Person"), ObjectType::Like => write!(f, "Like"), @@ -50,23 +49,30 @@ pub enum Object { Tombstone, } -#[derive(Serialize, Deserialize,Debug,PartialEq)] -pub struct Activity{ +#[derive(Serialize, Deserialize, Debug, PartialEq)] +pub struct Activity { #[serde(rename = "type")] pub activity_type: ObjectType, } -pub fn json_to_actor(input: &String)->Actor { +pub fn json_to_actor(input: &String) -> Actor { let return_data: Actor = serde_json::from_str(&input).unwrap(); return_data } -pub fn parse_activity(input: &String)->Result { - let json_input: Result = serde_json::from_str(input); +pub fn parse_activity(input: &String) -> Result { + let json_input: Result = serde_json::from_str(input); if json_input.is_ok() { match json_input.as_ref().unwrap().activity_type { - ObjectType::Person => { return Ok(Object::Person(json_to_actor(input)));}, - _ => { return Err(format!("Activity type {} not implemented",json_input.unwrap().activity_type)); } + ObjectType::Person => { + return Ok(Object::Person(json_to_actor(input))); + } + _ => { + return Err(format!( + "Activity type {} not implemented", + json_input.unwrap().activity_type + )); + } } } else { Err("Failed to parse json data".to_string()) @@ -84,22 +90,36 @@ mod tests { let input_string = read_to_string("tests/test-json-person.json").unwrap(); let actor: Actor = json_to_actor(&input_string); - assert_eq!(actor.object_type,ObjectType::Person); - assert_eq!(actor.name,"Sebastian Jambor".to_string()); - assert_eq!(actor.preferred_username,"crepels"); - assert_eq!(actor.following,"https://mastodon.social/users/crepels/following".to_string()); - assert_eq!(actor.followers,"https://mastodon.social/users/crepels/followers".to_string()); - assert_eq!(actor.inbox,"https://mastodon.social/users/crepels/inbox".to_string()); - assert_eq!(actor.outbox,"https://mastodon.social/users/crepels/outbox".to_string()); - assert_eq!(actor.summary,Some("

I created a systemd playground to help people learn systemd.

".to_string())); + assert_eq!(actor.object_type, ObjectType::Person); + assert_eq!(actor.name, "Sebastian Jambor".to_string()); + assert_eq!(actor.preferred_username, "crepels"); + assert_eq!( + actor.following, + "https://mastodon.social/users/crepels/following".to_string() + ); + assert_eq!( + actor.followers, + "https://mastodon.social/users/crepels/followers".to_string() + ); + assert_eq!( + actor.inbox, + "https://mastodon.social/users/crepels/inbox".to_string() + ); + assert_eq!( + actor.outbox, + "https://mastodon.social/users/crepels/outbox".to_string() + ); + assert_eq!( + actor.summary, + Some("

I created a systemd playground to help people learn systemd.

".to_string()) + ); assert_eq!(actor.icon,Some(Icon{media_type: "Image".to_string(), media_mime_type: "image/png".to_string(), url: "https://files.mastodon.social/accounts/avatars/108/227/485/389/961/502/original/1213d525278ae01d.png".to_string()})) - } #[test] fn detect_activity_type() { let input_string = read_to_string("tests/test-json-person.json").unwrap(); let result = parse_activity(&input_string).unwrap(); - assert!(matches!(result, Object::Person( .. ))); + assert!(matches!(result, Object::Person(..))); } }