Skip to content

proc_macro: support args which are &T and Option<&T> #202

Open
@BaxHugh

Description

@BaxHugh

The cached macro currently cannot support arg: &T out of the box, due to it's implementation which leads to borrowed data escaping the fn body, when the key type is set to &T

Also, because Option<&T>::clone() returns Option<&T> rather than an owned type, to support Option<&T> as an input requires:

  • the macro impl to call Option::cloned() instead of Option::clone().
  • The key type be Option<T> instead of Option<&T> and Option<&T>.cloned() needs to be called instead of Option<&T>.clone().

After an initial look at the problem I think here we want to call some function which goes through the input_tys and makes this conversion, noting the names of those inputs, so that we call cloned() instad of clone() on those inputs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions