tmx 0.2.2

TMX is a library for loading [Tiled](https://mapeditor.org) maps in Rust
Documentation
use serde::{de::Deserializer, Deserialize};

fn deserialize_version<'de, D>(deserializer: D) -> Result<String, D::Error>
where
    D: Deserializer<'de>,
{
    #[derive(Deserialize)]
    #[serde(untagged)]
    enum StringOrFloat {
        String(String),
        Float(f64),
    }

    match StringOrFloat::deserialize(deserializer)? {
        StringOrFloat::String(s) => Ok(s),
        StringOrFloat::Float(f) => Ok(f.to_string()),
    }
}

#[derive(Clone, Debug, Deserialize, Eq, Hash, PartialEq)]
pub struct Metadata {
    #[serde(deserialize_with = "deserialize_version")]
    pub version: String,
    #[serde(rename = "tiledversion")]
    pub tiled_version: String,
}