dota-gsi 0.5.0

Game State Integration with Dota 2 in Rust. Provides a server that listens for events sent by Dota 2.
Documentation
/// Events generated by comparing Dota 2 game states
#[derive(Debug, Clone, PartialEq)]
pub enum GameEvent {
    /// Events related to hero abilities
    AbilityEvent(Ability),
    /// Events related to the state of the Dota 2 map
    MapEvent(Map),
    /// Events related to the player
    PlayerEvent(Player),
}

#[derive(Debug, Clone, PartialEq)]
pub enum Ability {
    /// An ability's level went up, possibly by more than 1
    LevelledUp(u8),
    /// An ability (previously active) went on cooldown
    WentOnCooldown(u16),
    /// An ability (previously in cooldown) went off cooldown
    WentOffCooldown,
    /// An ability was activated (and it still is active)
    Activated,
    /// An ability was deactivated
    Deactivated,
}

#[derive(Debug, Clone, PartialEq)]
pub enum Map {
    /// Daytime started
    StartedDay,
    /// Nightime started
    StartedNight { nightstalker: bool },
}

#[derive(Debug, Clone, PartialEq)]
pub enum Player {
    /// A player secured one or more kills
    ///
    /// Includes the current kill stream.
    SecuredKill {
        name: String,
        kills: u16,
        streak: u16,
    },
    /// A player died
    Died { name: String, deaths: u16 },
    /// A player got an assist
    Assisted { name: String, assists: u16 },
}