pub fn merge_patch_segments<S: ToTokens + ?Sized>(
name: &Ident,
span: &S,
what: &str,
) -> Result<Vec<String>>Expand description
The pascal-case segments of the name of a merge patch struct: MergePatch
followed by at least two more (e.g. MergePatchOrderModel); errors are
reported at span, calling the struct what.
§Errors
Returns an error when name is not such a name.
§Examples
let name: syn::Ident = syn::parse_quote!(MergePatchOrderModel);
let misnamed: syn::Ident = syn::parse_quote!(PatchOrderModel);
assert_eq!(merge_patch_segments(&name, &name, "struct").unwrap().len(), 4);
assert!(merge_patch_segments(&misnamed, &misnamed, "struct").is_err());