#forms #optional #field #macro

has_fields

一些处理可选字段表单的宏

2个版本

0.1.1 2023年1月8日
0.1.0 2023年1月4日

#1983Rust模式

Unlicense

4KB

has_fields

一些处理可选字段表单的宏。

使用方法

例如,如果你有一个这样的表单

let form = MyForm {
    id: 1,
    name: Some("name".to_string()),
    email: Some("[email protected]".to_string()),
    phone: None,
}

以下是一些可能帮助你的宏

  1. has_fields::has_fields!:检查一个结构体是否有某些字段。返回布尔值。

    has_fields!(form, "name", "email") // true
    
  2. has_fields::require_fields:检查一个结构体是否有某些字段。返回一个Result<(), Vec<&'static str>>

    require_fields!(form, "name", "email") // Ok(())
    require_fields!(form, "name", "email", "phone") // Err(vec!["phone"])
    

此外,你可以为你的结构体派生HasFields特质,并使用这些方法

  1. num_fields:获取结构体中非可选字段的数量。

    form.num_fields() // 2
    

许可证

Unlicense

贡献

如果你有任何想法,请随时提交问题或PR。

依赖项

~1.5MB
~35K SLoC