我最近发现自己正在做这样的事情来获取方法调用语法:
pub trait Test {
fn mk_pair(self) -> (Self, Self)
where
Self: Sized + Clone,
{
(self.clone(), self)
}
}
impl<T> Test for T {}
pub fn testy<T>(x: T) -> (T, T)
where
T: Clone,
{
x.mk_pair()
}
一个愚蠢的例子,但是正如您所看到的,我现在可以呼叫x.mk_pair()
而不是mk_pair(x)
。在这种情况下可能无关紧要,但是在某些情况下,某些find方法调用语法很好。
问题是,这是所需的最低要求吗?全局展示似乎有点不可靠。有没有更好的方法来给出函数方法调用语法而又没有太多的trait / impl tomfoolery?