我有一個第三方類,我通常在 C 中會擴展它以獲得我自己的專用型別。如何在 Rust 中做到這一點?我嘗試這樣做的原因是我當然可以使用組合來代替,但是這樣做我無法輕松呼叫來自 3rd 方型別的方法。它是如何在 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();
uj5u.com熱心網友回復:
您可以實作AsRef或AsMut為您的型別:
impl AsRef<some_3rd_crate::Type> for MyStruct
{
fn as_ref(&self) -> &some_3rd_crate::Type {
&self.third_type
}
}
然后可以用作:
let mt = MyStruct{third_type: some_3rd_crate::Type()};
mt.as_ref().call_3rd_party_function();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/314624.html
