auto_ref

Attributes for replace reference parameter &T to impl AsRef<T> or impl Borrow<T>

Usage

```rs use autoref::{autoref, auto_borrow};

[auto_ref]

fn example1(s: &str, t: &mut str) { println!("{}, {}", s, t); }

[auto_borrow]

fn example2(s: &str, t: &mut str) { println!("{}, {}", s, t); }

[auto_ref(s)]

[auto_borrow(t)]

fn example3(s: &str, t: &str) { println!("{}, {}", s, t); } ```

The above code is convert to

```rs fn example1(s: impl ::core::convert::AsRef, t: impl ::core::convert::AsMut) { let s: &str = s.asref(); let t: &mut str = t.asmut(); println!("{}, {}", s, t); }

fn example2(s: impl ::core::borrow::Borrow, t: impl ::core::borrow::BorrowMut) { let s: &str = s.borrow(); let t: &mut str = t.borrow_mut(); println!("{}, {}", s, t); }

fn example3(s: impl ::core::convert::AsRef, t: impl ::core::borrow::Borrow) { let t: &str = t.borrow(); let s: &str = s.as_ref(); println!("{}, {}", s, t); } ```