soulseek-rs-lib 13.0.0

Library for Soulseek protocol implementation in Rust
Documentation
use std::sync::mpsc::Sender;

use crate::{
    message::{Message, MessageHandler},
    peer::PeerMessage,
    trace,
};

pub struct PeerInit;
impl MessageHandler<PeerMessage> for PeerInit {
    fn get_code(&self) -> u8 {
        1
    }

    fn handle(&self, message: &mut Message, sender: Sender<PeerMessage>) {
        message.set_pointer(4);
        let _message_code = message.read_int8();
        let username = message.read_string();
        let connection_type = message.read_string();
        let token = message.read_int32();
        trace!(
            "PeerInit: username: {}, connection_type: {}, token: {}",
            username, connection_type, token
        );

        let _ = sender.send(PeerMessage::SetUsername(username));
    }
}