df-fields 0.1.16

This is a shortcut tool related to database fields
Documentation
#[cfg(test)]
mod test {
    use json::object;
    use df_fields::Field;

    #[test]
    fn str() {
        let data = df_fields::str::Str::new(true, "str", "string", 6, "carry").field();
        println!("Str: {}", data.clone());
        assert_eq!(r#"{"require":true,"field":"str","mode":"string","title":"string","length":6,"def":"carry","dec":""}"#, data.to_string());
        let data = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());

        let data = df_fields::str::Pass::new(true, "pass", "密码", 3, "111111").field();
        println!("Pass: {}", data.clone());
        let field = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", field.clone());
        let data = df_fields::verify(data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());

        let data = df_fields::str::Tel::new(true, "tel", "电话", "111111").field();
        println!("tel: {}", data.clone());
        let field = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", field.clone());
        let data = df_fields::verify(data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());

        let data = df_fields::str::Email::new(true, "email", "邮件", "111111").field();
        println!("email: {}", data.clone());
        let field = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", field.clone());
        let verify = df_fields::verify(data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", verify.clone());
    }

    #[test]
    fn int() {
        let data = df_fields::int::Int::new(true, "int", "整数", 3, 0).field();
        println!("Int: {}", data);
        let data = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());

        let data = df_fields::int::Switch::new(true, "Switch", "开关", true).field();
        println!("Switch: {}", data);
        let data = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());

        let data = df_fields::int::AutoKey::new(true, "autokey", "自动主键").field();
        println!("AutoKey: {}", data);
        let field = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", field.clone());
        let data = df_fields::verify(data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());
    }

    #[test]
    fn text() {
        let data = df_fields::text::Text::new(true, "text", "长文本", "我的").field();
        println!("Text: {}", data);
        let data = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());

        let data = df_fields::text::Table::new(true, "text", "长文本", "goods_ord", vec!["name", "code"], "test.test.test").field();
        println!("Table: {}", data);
        let data = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());

        let data = df_fields::text::File::new(true, "file", "附件", 3, false, 0, vec![]).field();
        println!("File: {}", data);
        let data = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());

        let data = df_fields::text::Json::new(true, "json", "JSON", object! {name:"111"}).field();
        println!("File: {}", data);
        let data = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());


        let data = df_fields::text::Url::new(true, "url", "网址", "http").field();
        println!("File: {}", data);
        let data = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());
    }

    #[test]
    fn float() {
        let data = df_fields::float::Float::new(true, "float", "小数", 12, 2, 12.20).field();
        println!("Float: {}", data);
        let data = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());

        let data = df_fields::str::Key::new(true, "key", "自定义主键", 20).field();
        println!("Key: {}", data);
        let data = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());
    }

    #[test]
    fn select() {
        let data = df_fields::select::Select::new(true, "select", "多选", vec!["我的", "你的", "他的"], vec!["你的"]).field();
        println!("Select: {}", data);
        let data = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());

        let data = df_fields::select::Radio::new(true, "radio", "单选", vec!["我的", "你的", "他的"], "我的").field();
        println!("Radio: {}", data);
        let data = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());

        let data = df_fields::select::Select::new(true, "select", "多选", vec!["我的", "你的", "他的"], vec!["你的", "他的"]).sql("mysql");
        println!("Select: {}", data);
        let data = df_fields::select::Radio::new(true, "radio", "单选", vec!["我的", "你的", "他的"], "我的").sql("mysql");
        println!("Radio: {}", data);
    }

    #[test]
    fn datetime() {
        let data = df_fields::datetime::Datetime::new(true, "datetime", "日期时间", "").field();
        println!("Datetime: {}", data);
        let data = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());

        let data = df_fields::datetime::Year::new(true, "year", "", 1920).field();
        println!("Year: {}", data);
        let data = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());

        let data = df_fields::datetime::Date::new(true, "date", "日期", "").field();
        println!("Date: {}", data);
        let data = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());

        let data = df_fields::datetime::Time::new(true, "time", "时间", "").field();
        println!("Time: {}", data);
        let data = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());


        let data = df_fields::datetime::Timestamp::new(true, "timestamp", "时间戳", 4, 0.0).field();
        println!("Timestamp: {}", data);
        let data = df_fields::field("mysql", data["field"].as_str().unwrap(), data.clone());
        println!("field: {}", data.clone());
    }

    #[test]
    fn date() {
        let data = df_fields::datetime::Timestamp::timestamp();
        println!("timestamp: {} s", data);

        let datetime = df_fields::datetime::Datetime::timestamp_to_datetime(data);
        println!("timestamp_to_datetime: {} ", datetime);

        let data = df_fields::datetime::Date::timestamp_to_date(data);
        println!("timestamp_to_date: {} ", data);

        let data = df_fields::datetime::Timestamp::timestamp_ms();
        println!("timestamp: {} ms", data);
        let data = df_fields::datetime::Timestamp::timestamp_μs();
        println!("timestamp: {} μs", data);
        let data = df_fields::datetime::Timestamp::timestamp_ns();
        println!("timestamp: {} ns", data);

        let data = df_fields::datetime::Date::date();
        println!("date: {}", data);
        let data = df_fields::datetime::Timestamp::date_to_timestamp(data.as_str().clone());
        println!("date: {}", data);
        let data = df_fields::datetime::Time::time();
        println!("date: {}", data);
        let data = df_fields::datetime::Datetime::datetime();
        println!("date: {}", data);
        let data = df_fields::datetime::Timestamp::datetime_to_timestamp(data.as_str().clone());
        println!("date: {}", data);
        let data = df_fields::datetime::Year::year();
        println!("date: {}", data);
        let data = df_fields::datetime::Timestamp::timestamp();
        let data = df_fields::datetime::Year::timestamp_to_year(data);
        println!("date: {}", data);
    }
}