Update object.rs

This commit is contained in:
Sunli 2020-06-19 12:49:45 +08:00
parent dede1edc93
commit cd5534c8a1

View File

@ -114,19 +114,17 @@ pub fn generate(object_args: &args::Object, item_impl: &mut ItemImpl) -> Result<
let mut keys = Vec::new(); let mut keys = Vec::new();
let mut keys_str = String::new(); let mut keys_str = String::new();
let mut requires_getter = Vec::new(); let mut requires_getter = Vec::new();
let mut one_key = false; let all_key = args.iter().all(|(_, _, arg)| !arg.key);
if args.is_empty() { if args.is_empty() {
return Err(Error::new_spanned( return Err(Error::new_spanned(
method, method,
"Entity need to have at least one key.", "Entity need to have at least one key.",
)); ));
} else if args.len() == 1 {
one_key = true;
} }
for (ident, ty, args::Argument { name, key, .. }) in &args { for (ident, ty, args::Argument { name, key, .. }) in &args {
let is_key = one_key || *key; let is_key = all_key || *key;
let name = name let name = name
.clone() .clone()
.unwrap_or_else(|| ident.ident.to_string().to_camel_case()); .unwrap_or_else(|| ident.ident.to_string().to_camel_case());