Refactoring, mainly formatting
This commit is contained in:
parent
3825263fa3
commit
d8f1733eb3
25 changed files with 667 additions and 348 deletions
|
@ -2,11 +2,14 @@ use std::sync::{Arc, RwLock};
|
|||
|
||||
use anyhow::Error;
|
||||
use cozo::DbInstance;
|
||||
use tracing::{error, debug};
|
||||
use tracing::{debug, error};
|
||||
|
||||
use crate::comm::{Peer, CommHandle, messages::{Message, MessageContent}};
|
||||
use crate::comm::{
|
||||
messages::{Message, MessageContent},
|
||||
CommHandle, Peer,
|
||||
};
|
||||
|
||||
use self::types::{ElementContent, ElementId, Element, Tag};
|
||||
use self::types::{Element, ElementContent, ElementId, Tag};
|
||||
|
||||
pub mod types;
|
||||
|
||||
|
@ -29,28 +32,48 @@ impl State {
|
|||
match db {
|
||||
Ok(d) => {
|
||||
schema::add_schema(&d)?;
|
||||
Ok(Arc::new(State {db: d, comm_handle: RwLock::new(None)}))
|
||||
},
|
||||
Ok(Arc::new(State {
|
||||
db: d,
|
||||
comm_handle: RwLock::new(None),
|
||||
}))
|
||||
}
|
||||
Err(e) => Err(Error::msg(format!("{:?}", e))),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn set_comm_handle(&self, handle: Arc<CommHandle>) {
|
||||
*self.comm_handle.write().as_deref_mut().expect("Could not set state's CommHandle") = Some(handle);
|
||||
*self
|
||||
.comm_handle
|
||||
.write()
|
||||
.as_deref_mut()
|
||||
.expect("Could not set state's CommHandle") = Some(handle);
|
||||
}
|
||||
|
||||
pub fn set_element_content(&self, element_id: &ElementId, content: &ElementContent) -> anyhow::Result<()> {
|
||||
pub fn set_element_content(
|
||||
&self,
|
||||
element_id: &ElementId,
|
||||
content: &ElementContent,
|
||||
) -> anyhow::Result<()> {
|
||||
let res = queries::elements::set_content(&self.db, element_id, content);
|
||||
debug!("Set content of element with id {:?}: {:?}", element_id, self.get_element(element_id));
|
||||
|
||||
self.send_to_peers(MessageContent::SetElement { id: element_id.clone(), content: content.clone() });
|
||||
debug!(
|
||||
"Set content of element with id {:?}: {:?}",
|
||||
element_id,
|
||||
self.get_element(element_id)
|
||||
);
|
||||
|
||||
self.send_to_peers(MessageContent::SetElement {
|
||||
id: element_id.clone(),
|
||||
content: content.clone(),
|
||||
});
|
||||
res
|
||||
}
|
||||
|
||||
pub fn remove_element(&self, element_id: &ElementId) -> anyhow::Result<()> {
|
||||
let res = queries::elements::remove(&self.db, element_id);
|
||||
|
||||
self.send_to_peers(MessageContent::RemoveElement { id: element_id.clone() });
|
||||
self.send_to_peers(MessageContent::RemoveElement {
|
||||
id: element_id.clone(),
|
||||
});
|
||||
res
|
||||
}
|
||||
|
||||
|
@ -60,8 +83,11 @@ impl State {
|
|||
|
||||
pub fn get_elements_by_tag(&self, tag: &Tag) -> Vec<ElementId> {
|
||||
queries::elements::get_by_tag(&self.db, tag)
|
||||
.map_err(|e| {error!("{}", e); e})
|
||||
.unwrap_or(vec![])
|
||||
.map_err(|e| {
|
||||
error!("{}", e);
|
||||
e
|
||||
})
|
||||
.unwrap_or(vec![])
|
||||
}
|
||||
|
||||
pub fn set_peer(&self, peer: &Peer) -> anyhow::Result<()> {
|
||||
|
@ -72,8 +98,6 @@ impl State {
|
|||
queries::peers::get(&self.db)
|
||||
}
|
||||
|
||||
|
||||
|
||||
fn send_to_peers(&self, ct: MessageContent) {
|
||||
match self.comm_handle.read() {
|
||||
Ok(opt) => {
|
||||
|
@ -83,7 +107,7 @@ impl State {
|
|||
let _ = arc.broadcast(Message::new(ct)).await;
|
||||
});
|
||||
}
|
||||
},
|
||||
}
|
||||
Err(e) => debug!("{}", e),
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue