pub enum ChatMessage {
Join {
nickname: String,
peer_id: [u8; 32],
timestamp: SystemTime,
},
Leave {
nickname: String,
peer_id: [u8; 32],
timestamp: SystemTime,
},
Text {
nickname: String,
peer_id: [u8; 32],
text: String,
timestamp: SystemTime,
},
Status {
nickname: String,
peer_id: [u8; 32],
status: String,
timestamp: SystemTime,
},
Direct {
from_nickname: String,
from_peer_id: [u8; 32],
to_peer_id: [u8; 32],
text: String,
timestamp: SystemTime,
},
Typing {
nickname: String,
peer_id: [u8; 32],
is_typing: bool,
},
PeerListRequest {
peer_id: [u8; 32],
},
PeerListResponse {
peers: Vec<PeerInfo>,
},
}
Expand description
Chat message types
Variants§
Join
User joined the chat
Fields
§
timestamp: SystemTime
Time the event occurred
Leave
User left the chat
Fields
§
timestamp: SystemTime
Time the event occurred
Text
Text message from user
Fields
§
timestamp: SystemTime
Time the message was sent
Status
Status update from user
Fields
§
timestamp: SystemTime
Time the status was set
Direct
Direct message to specific peer
Fields
§
timestamp: SystemTime
Time the message was sent
Typing
Typing indicator
Fields
PeerListRequest
Request peer list Request current peer list from the node
PeerListResponse
Response with peer list Response containing current peers
Implementations§
Source§impl ChatMessage
impl ChatMessage
Sourcepub fn status(nickname: String, peer_id: PeerId, status: String) -> Self
pub fn status(nickname: String, peer_id: PeerId, status: String) -> Self
Create a new status message
Sourcepub fn direct(
from_nickname: String,
from_peer_id: PeerId,
to_peer_id: PeerId,
text: String,
) -> Self
pub fn direct( from_nickname: String, from_peer_id: PeerId, to_peer_id: PeerId, text: String, ) -> Self
Create a new direct message
Sourcepub fn typing(nickname: String, peer_id: PeerId, is_typing: bool) -> Self
pub fn typing(nickname: String, peer_id: PeerId, is_typing: bool) -> Self
Create a typing indicator
Sourcepub fn deserialize(data: &[u8]) -> Result<Self, ChatError>
pub fn deserialize(data: &[u8]) -> Result<Self, ChatError>
Deserialize message from bytes
Trait Implementations§
Source§impl Clone for ChatMessage
impl Clone for ChatMessage
Source§fn clone(&self) -> ChatMessage
fn clone(&self) -> ChatMessage
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for ChatMessage
impl Debug for ChatMessage
Source§impl<'de> Deserialize<'de> for ChatMessage
impl<'de> Deserialize<'de> for ChatMessage
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for ChatMessage
impl PartialEq for ChatMessage
Source§impl Serialize for ChatMessage
impl Serialize for ChatMessage
impl StructuralPartialEq for ChatMessage
Auto Trait Implementations§
impl Freeze for ChatMessage
impl RefUnwindSafe for ChatMessage
impl Send for ChatMessage
impl Sync for ChatMessage
impl Unpin for ChatMessage
impl UnwindSafe for ChatMessage
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more