From 2f9252a64d9df29dfb91f458dfb9e7939f927c19 Mon Sep 17 00:00:00 2001 From: Sam Schlinkert Date: Wed, 15 Sep 2021 21:57:36 -0400 Subject: [PATCH] use rustfmt to format some of the Rust code --- examples/echobot.rs | 26 ++++++++++++++++++-------- src/bindings_go.rs | 29 +++++++++++++++++++---------- src/lib.rs | 18 ++++++++++++------ src/structs.rs | 32 +++++++++++++++++++++++--------- 4 files changed, 72 insertions(+), 33 deletions(-) diff --git a/examples/echobot.rs b/examples/echobot.rs index 7c961e6..986d950 100644 --- a/examples/echobot.rs +++ b/examples/echobot.rs @@ -1,8 +1,8 @@ -use std::{thread}; +use std::thread; use libcwtch; +use libcwtch::structs::*; use libcwtch::CwtchLib; -use libcwtch::structs::{*}; fn main() { let bot_home: String = "example_cwtch_dir".to_string(); @@ -28,26 +28,36 @@ fn main() { println!("event CwtchStarted!"); println!("Creating bot"); cwtch.create_profile("Echobot", "be gay do crime"); - }, + } "NewPeer" => { - println!("\n***** {} at {} *****\n", event.data["name"], event.data["Identity"]); + println!( + "\n***** {} at {} *****\n", + event.data["name"], event.data["Identity"] + ); // process json for profile, contacts and servers...else { - let profile = Profile::new(&event.data["Identity"], &event.data["name"], &event.data["picture"], &event.data["ContactsJson"], &event.data["ServerList"]); + let profile = Profile::new( + &event.data["Identity"], + &event.data["name"], + &event.data["picture"], + &event.data["ContactsJson"], + &event.data["ServerList"], + ); print!("profile: {:?}", profile); } "NewMessageFromPeer" => { let to = event.data["ProfileOnion"].to_string(); let conversation = event.data["RemotePeer"].to_string(); - let message: Message = serde_json::from_str(event.data["Data"].as_str()).unwrap(); + let message: Message = + serde_json::from_str(event.data["Data"].as_str()).unwrap(); - let response = Message{o:1, d:message.d}; + let response = Message { o: 1, d: message.d }; let response_json = serde_json::to_string(&response).unwrap(); cwtch.send_message(to.as_str(), conversation.as_str(), response_json.as_str()); } _ => println!("unhandled event!"), }; - }; + } }); event_loop_handle.join().unwrap(); diff --git a/src/bindings_go.rs b/src/bindings_go.rs index c12e0fb..79b966b 100644 --- a/src/bindings_go.rs +++ b/src/bindings_go.rs @@ -3,30 +3,35 @@ #![allow(non_snake_case)] #![allow(dead_code)] -use std::ffi::{CString}; -use std::ffi::{CStr}; +use std::ffi::CStr; +use std::ffi::CString; -use super::{CwtchLib}; +use super::CwtchLib; use crate::cwtchlib_go::bindings; struct c_str_wrap { raw: *mut i8, - len: i32 + len: i32, } impl c_str_wrap { pub fn new(str: &str) -> c_str_wrap { let cs = match CString::new(str) { Ok(s) => s, - Err(_) => CString::new("").unwrap() + Err(_) => CString::new("").unwrap(), }; - c_str_wrap { len: cs.as_bytes().len() as i32, raw: cs.into_raw() } + c_str_wrap { + len: cs.as_bytes().len() as i32, + raw: cs.into_raw(), + } } } impl Drop for c_str_wrap { fn drop(&mut self) { - unsafe { CString::from_raw(self.raw); } + unsafe { + CString::from_raw(self.raw); + } } } @@ -91,7 +96,9 @@ impl CwtchLib for CwtchLibGo { c_bind!(send_message(profile, contact, msg;) c_SendMessage); c_bind!(send_invitation(profile, contact, target;) c_SendInvitation); fn reset_tor(&self) { - unsafe { bindings::c_ResetTor(); } + unsafe { + bindings::c_ResetTor(); + } } c_bind!(create_group(profile, server, name;) c_CreateGroup); c_bind!(delete_profile(profile, pass;) c_DeleteProfile); @@ -103,6 +110,8 @@ impl CwtchLib for CwtchLibGo { c_bind!(set_group_attribute(profile, group, key, val;) c_SetGroupAttribute); fn shutdown_cwtch(&self) { - unsafe { bindings::c_ShutdownCwtch(); } + unsafe { + bindings::c_ShutdownCwtch(); + } } -} \ No newline at end of file +} diff --git a/src/lib.rs b/src/lib.rs index 1f6cafc..c8c2016 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -3,8 +3,8 @@ #![doc(html_root_url = "https://git.openprivacy.ca/cwtch.im/libcwtch-rs")] #![deny(missing_docs)] -mod cwtchlib_go; mod bindings_go; +mod cwtchlib_go; /// Basic structs using data from Cwtch and for deserializing JSON and serializing to JSON to communicate with Cwtch pub mod structs; @@ -18,7 +18,7 @@ pub trait CwtchLib { fn send_app_event(&self, event_json: &str); /// Pull json of a structs::CwtchEvent off the appbus for responding to - fn get_appbus_event(&self, ) -> String; + fn get_appbus_event(&self) -> String; /// Create a new profile encrypted with pass fn create_profile(&self, nick: &str, pass: &str); @@ -36,7 +36,13 @@ pub trait CwtchLib { fn block_contact(&self, profile: &str, contact: &str); /// Cause profile to update contact's message to have it's flags updated - fn update_message_flags(&self, profile: &str, contact: &str, message_id: i32, message_flags: u64); + fn update_message_flags( + &self, + profile: &str, + contact: &str, + message_id: i32, + message_flags: u64, + ); /// Get a specific message for contact of profile by index fn get_message(&self, profile: &str, contact: &str, message_index: i32) -> String; @@ -51,7 +57,7 @@ pub trait CwtchLib { fn send_invitation(&self, profile: &str, contact: &str, target: &str); /// Ask the ACN inside the Cwtch app to restart the tor connection - fn reset_tor(&self, ); + fn reset_tor(&self); /// Cause profile to create a group on server with name fn create_group(&self, profile: &str, server: &str, name: &str); @@ -78,10 +84,10 @@ pub trait CwtchLib { fn set_group_attribute(&self, profile: &str, group: &str, key: &str, val: &str); /// Shutdown the cwtch app and associated ACN - fn shutdown_cwtch(&self, ); + fn shutdown_cwtch(&self); } /// Create a new CwtchLib that is backed by bindings to libcwtch-go pub fn new_cwtchlib_go() -> impl CwtchLib { bindings_go::CwtchLibGo {} -} \ No newline at end of file +} diff --git a/src/structs.rs b/src/structs.rs index 8d60b68..12d6ee3 100644 --- a/src/structs.rs +++ b/src/structs.rs @@ -1,7 +1,7 @@ +use crate::structs::ConnectionState::Disconnected; use serde::{Deserialize, Serialize}; use serde_with::{serde_as, DefaultOnError}; use std::collections::HashMap; -use crate::structs::ConnectionState::Disconnected; #[derive(Serialize, Deserialize, Debug)] /// Defines the states a Cwtch connection can be in @@ -19,7 +19,7 @@ pub enum ConnectionState { /// The connection attempt failed Failed, /// The connection has been killed - Killed + Killed, } impl Default for ConnectionState { @@ -37,7 +37,7 @@ pub enum ContactAuthorization { /// The contact is approved by the user (manual action) Approved, /// The contact is blocked by the user, should be ignored - Blocked + Blocked, } #[derive(Serialize, Deserialize, Debug)] @@ -62,7 +62,8 @@ pub struct Contact { pub onion: String, /// display name of the contact, as determined in libcwtch-go from name specified by contact pub name: String, - #[serde_as(deserialize_as = "DefaultOnError")] // cwtch loads profile/contacts from storage and leaves status blank, it's filled in "soon" by events... + #[serde_as(deserialize_as = "DefaultOnError")] + // cwtch loads profile/contacts from storage and leaves status blank, it's filled in "soon" by events... /// contact connection status pub status: ConnectionState, /// contact authorization state as set by profile @@ -91,7 +92,7 @@ pub struct Profile { /// path to a profile image, controled by "picture" attribute pub image_path: String, /// all profile attributes - pub attr: HashMap, + pub attr: HashMap, /// map of contacts [ onion => contact ] pub contacts: HashMap, /// map of servers [ onion => server ] @@ -105,17 +106,30 @@ pub struct Message { /// [ OverlayChat = 1, OverlayInviteContact = 100, OverlayInviteGroup = 101, OverlayFileSharing = 200 ] pub o: i64, /// data of the message - pub d: String + pub d: String, } impl Profile { /// Create a new profile populated from supplied data /// contacts_json as supplied by libcwtch-go, a map of contacts /// server_list as supplied by libcwtch-go, a map of servers - pub fn new(identity: &str, name: &str, picture: &str, contacts_json: &str, server_list: &str) -> Profile { + pub fn new( + identity: &str, + name: &str, + picture: &str, + contacts_json: &str, + server_list: &str, + ) -> Profile { let contacts = Profile::process_contacts(contacts_json); let servers = Profile::process_servers(server_list); - Profile{ onion: identity.to_string(), nick: name.to_string(), image_path: picture.to_string(), attr: Default::default(), contacts: contacts, servers: servers } + Profile { + onion: identity.to_string(), + nick: name.to_string(), + image_path: picture.to_string(), + attr: Default::default(), + contacts: contacts, + servers: servers, + } } fn process_contacts(constacts_json: &str) -> HashMap { @@ -142,4 +156,4 @@ impl Profile { } servers } -} \ No newline at end of file +}