27 lines
No EOL
853 B
Rust
27 lines
No EOL
853 B
Rust
use std::sync::Arc;
|
|
|
|
use tracing::debug;
|
|
|
|
use crate::state::{State, types::PeerId};
|
|
|
|
use super::{messages::{Message, MessageContent}, Peer};
|
|
|
|
|
|
|
|
pub fn handle(state: Arc<State>, peer: &PeerId, message: Message) {
|
|
debug!("Handling message now: {:?}", message);
|
|
match message.content() {
|
|
MessageContent::Hello { peer_name } => {
|
|
state.set_peer(&Peer::new(peer.clone(), peer_name.clone())).expect("Couldn't set peer");
|
|
},
|
|
MessageContent::CreateElement { id, content } => {
|
|
state.set_element(id, content).expect("State failed");
|
|
},
|
|
MessageContent::SetElement { id, content } => {
|
|
state.set_element(id, content).expect("State failed");
|
|
},
|
|
MessageContent::RemoveElement { id } => {
|
|
state.remove_element(id).expect("State failed");
|
|
}
|
|
}
|
|
} |