Rust 中的自我參考結構的安全構建塊,無巨集

https://codereview.stackexchange.com/questions/289155/a-safe-building-block-for-self-referential-structs-in-rust-without-macros

Rust 安全的自引用結構的安全建構與參照物件中的內嵌生命週期

這個建構的基本概念是提供一個”容器”,看起來像是:

“`rust
pub struct SelfReferentialAtom {
referenced_part: Box,
referencing_part: U
}
“`

其中 referencing_part 可能包含對 referenced_part 內部的引用。如果不授予對 referenced_part 的可變訪問權限,這應該是安全的(因為 referenced_part 的內容是封裝的,因此即使父結構被移動,它也不會被移動)。

創建允許 SafeSelfReferentialAtom 對象

現在我們已經有了正確的參考類型,我們可以回答第一個問題:如何安全地創建 SelfReferentialAtom 對象。為了這樣做,我們提供一個全局函數,確保滿足所有需求。

“`rust
pub trait RefType {
type Associated<'a>;
}
“`

We can answer the first question: How to create a SelfReferentialAtom object safely, Providing a global function that ensures all the requirements are satisfied.

Should this be transformed into a library, this would of course be migrated into doc-comments.

via Recent Questions – Code Review Stack Exchange

January 27, 2024 at 05:37AM

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *