bancho-packet 0.2.0

Library for handling osu!'s packets
Documentation
#[derive(Debug)]
pub struct BanchoMessage {
    pub sending_client: String,
    pub message: String,
    pub target: String,
    pub sender_id: i32,
}

pub struct BanchoChannel {
    pub name: String,
    pub topic: String,
    pub connected: i16,
}
#[derive(Clone)]
pub struct BanchoPresence {
    pub player_id: i32,
    pub username: String,
    pub timezone: u8,
    pub country_code: u8,
    pub play_mode: u8,
    pub permissions: u8,
    pub longitude: f32,
    pub latitude: f32,
    pub player_rank: i32,
}
#[derive(Debug)]
pub struct ClientStatus {
    pub status: u8,
    pub status_text: String,
    pub beatmap_checksum: String,
    pub current_mods: u32,
    pub play_mode: u8,
    pub beatmap_id: i32,
}

pub struct BanchoStats {
    pub player_id: i32,
    pub status: ClientStatus,
    pub ranked_score: i64,
    pub accuracy: f32,
    pub play_count: i32,
    pub total_score: i64,
    pub rank: i32,
    pub performance: i16,
}

pub struct MatchSlot {
    pub status: u8,
    pub team: u8,
    pub player_id: i32,
    pub slot_mods: u32,

    pub skipped: bool,
    pub completed: bool,
    pub loaded: bool,
}

pub struct ScoreFrame {
    pub time: i32,
    pub id: i32,
    pub count_300: i16,
    pub count_100: i16,
    pub count_50: i16,
    pub count_geki: i16,
    pub count_katu: i16,
    pub count_miss: i16,
    pub total_score: i32,
    pub max_combo: i16,
    pub current_combo: i16,
    pub perfect: bool,
    pub current_hp: f32,
    pub tag_byte: u8,
    pub using_score_v2: bool,
    pub combo_portion: Option<f32>,
    pub bonus_portion: Option<f32>,
}

pub struct Match {
    pub match_id: i32,
    pub in_progress: bool,
    pub match_type: u8,
    pub active_mods: u32,
    pub game_name: String,
    pub game_password: String,
    pub beatmap_name: String,
    pub beatmap_id: i32,
    pub beatmap_checksum: String,
    pub slot_status: Vec<u8>,
    pub slot_team: Vec<u8>,
    pub slot_id: Vec<i32>,
    pub host_id: i32,
    pub play_mode: u8,
    pub match_scoring_type: u8,
    pub match_team_type: u8,
    pub free_mod: bool,
    pub slot_mods: Vec<u32>,
    pub seed: i32,
}

pub struct ReplayFrame {
    pub button_state: u8,
    pub mouse_x: i16,
    pub mouse_y: i16,
    pub time: i32,
}

pub struct ReplayFrameBundle {
    pub extra: i32,
    pub frames: Vec<ReplayFrame>,
    pub action: i32,
    pub score_frame: ScoreFrame,
}