1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
pub trait ToRef { fn to_ref<T>(&self) -> &T where T: ?Sized, Self: AsRef<T>, { self.as_ref() } } impl<T> ToRef for T {} #[cfg(test)] mod tests { #[test] fn it_works() { use crate::ToRef; use std::path::Path; let url = "www.google.com".to_string(); let path = url.to_ref::<Path>(); assert_eq!(path, AsRef::<Path>::as_ref("www.google.com")); } }