typedef struct Foo {
int x;
int * x_ref;
} Foo;

Foo foo;
foo.x = 11;
foo.x_ref = &foo.x;

C で書くとこんな感じになる、自分の要素への参照を要素として持つ構造体って、Rust じゃもしかして書けない?
苦心してこんなん書いてもやっぱ無理だし。

use std::mem;

struct Foo<'a> {
x: i32,
x_ref: &'a i32,
}

impl<'a> Foo<'a> {
fn new() -> Self {
let mut foo = Foo {
x: 32,
x_ref: unsafe { mem::uninitialized() },
};
foo.x_ref = &foo.x;
foo
}
}