假设我们有以下类型:
struct Wrapper(Content);
Run Code Online (Sandbox Code Playgroud)
假设我经常需要访问Content这种类型的值,每次解构它都会很快变得很麻烦。解开这个值的惯用方法是什么?我知道有两种方法:实施Into<Content>和实施Deref。也许其中之一是首选?或者也许有一些更容易接受的方法来做到这一点?
进入方法:
impl Into<Content> for Wrapper {
fn into(self) -> Content {
let Wrapper(content) = self;
content
}
}
// ...
let content: Content = wrapper.into();
Run Code Online (Sandbox Code Playgroud)
德雷夫方法:
impl Deref for Wrapper {
type Target = Content;
fn deref(&self) -> &Self::Target {
let Wrapper(content) = self;
content
}
}
// ...
let content: Content = *wrapper;
Run Code Online (Sandbox Code Playgroud)