5个版本

0.5.4 2024年3月24日
0.5.3 2024年3月24日
0.5.2 2024年3月20日
0.5.1 2024年3月18日
0.5.0 2024年3月18日

348 in 过程宏

MIT 许可证

8KB
94

to_query

结构体到HTTP_GET/SQL查询参数转换。

Crates.io Documentation

多个相同的结构体可能会导致输出重复,但可以通过访问数组 get_strings() 来自由组合,以获得所需的输出。

    use to_query::STQuery;
    #[derive(STQuery)]
    struct HelloStruct {
        name: String,
        age: Option<u32>,
        money: u32,
        bank: Option<Bank>,
    }
    #[derive(STQuery)]
    struct Bank {
        bank_name: String,
        number: Option<u32>,
    }
    
    fn fill_struct_test() {
        let object = HelloStruct {
            name: "hello".to_owned(),
            age: Some(123),
            money: 0,
            bank: Some(Bank {
                bank_name: "CoolBank".to_owned(),
                number: Some(101),
            }),
            bank2: Bank{
                bank_name: "abc".to_string(),
                number: None,
            },
        };
        assert_eq!(
            object.get_http_query(),
            "name=hello&age=123&money=0&bank_name=CoolBank&number=101&bank_name=abc"
        );
        assert_eq!(
            object.get_sql_query(),
            "name=hello,age=123,money=0,bank_name=CoolBank,number=101,bank_name=abc"
        );

        assert_eq!(
            object.get_strings().get(2),
            Some("money=0".to_string()).as_ref()
        );

        assert_eq!(
            object.get_strings().last(),
            Some("bank_name=abc".to_string()).as_ref()
        );
    }

依赖关系

~295–750KB
~18K SLoC