#[cfg(feature = "serde_json")]
impl crate::TsType for serde_json::Value {
    fn ts_name() -> String {
        "unknown".to_string()
    }
}

#[cfg(feature = "uuid")]
impl crate::TsType for uuid::Uuid {
    fn ts_name() -> String {
        "string".to_string()
    }
}

#[cfg(feature = "chrono")]
mod chrono_impls {
    use chrono::{DateTime, NaiveDate, NaiveDateTime, NaiveTime, TimeZone};

    impl<Tz: TimeZone> crate::TsType for DateTime<Tz> {
        fn ts_name() -> String {
            "string".to_string()
        }
    }

    impl crate::TsType for NaiveDateTime {
        fn ts_name() -> String {
            "string".to_string()
        }
    }

    impl crate::TsType for NaiveDate {
        fn ts_name() -> String {
            "string".to_string()
        }
    }

    impl crate::TsType for NaiveTime {
        fn ts_name() -> String {
            "string".to_string()
        }
    }
}
