自己参照バッファの例

「自己参照バッファ」とは、自身のフィールドの 1 つへの参照を持つ 型です:

// 著作権 2026 Google LLC
// SPDX-License-Identifier: Apache-2.0

pub struct SelfReferentialBuffer {
    data: [u8; 1024],
    cursor: *mut u8,
}

この種の構造は Rust では一般的ではありません。SelfReferentialBuffer の インスタンスが移動したときに、cursor のアドレスを更新する方法がないためです。

しかし、このような構成は、ガベージコレクションを提供する他の言語や、 ムーブやコピーの際の独自の振る舞いをユーザーが定義できる C++ では、 より自然です。

概要

segment outline