克服rust中缺乏继承的问题



我有一个第三方类,我通常在c++中扩展它来获得我自己的专用类型。如何在Rust中做到这一点?原因我想做,我当然可以使用组合而不是但这样我无法轻易调用第三方的类型的方法。在Rust中是如何实现的?[编辑]

use some_3rd_crate;
struct MyStruct{third_type: some_3rd_crate::Type,}

如何将some_3rd_crate::Type的所有公共方法纳入我的类型范围,以便我可以使用它们:

let mt = MyStruct{third_type: some_3rd_crate::Type()};
mt.call_3rd_party_function();

可以为您的类型实现AsRefAsMut:

impl AsRef<some_3rd_crate::Type> for MyStruct
{
fn as_ref(&self) -> &some_3rd_crate::Type {
&self.third_type
}
}

Then可用作:

let mt = MyStruct{third_type: some_3rd_crate::Type()};
mt.as_ref().call_3rd_party_function();

相关内容

  • 没有找到相关文章

最新更新