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
use serde::de::DeserializeOwned;

#[cfg(feature = "diff")]
pub mod diff;

/// Handler to echo back game state integration events.
pub async fn echo_handler<T>(event: bytes::Bytes) -> Result<(), serde_json::Error>
where
    T: DeserializeOwned + std::fmt::Display,
{
    let value: T = match serde_json::from_slice(&event) {
        Err(e) => {
            log::error!("Failed to deserialize JSON body: {}", e);
            return Err(e);
        }
        Ok(v) => v,
    };

    println!("{:#}", value);
    Ok(())
}