pure Rust で XML データを処理したいなぁと思ってたら一日が終わった
self: Arc<Self>
みたいな receiver を書けるようになったので API を工夫すればもしかすると何かいいことあるかもと思ったんだけど、普通に
struct Wrapper(Arc<Inner>);
みたいな構造体作れば済む話なのでこのケースでは特にこれといって大きなメリットでもなかった
本当は C++ の enable_shared_from_this みたいなのが欲しいのよね。データへのポインタから正しい参照カウントを共有する Rc / Arc を復元したい人生だった。
もしかして Rc::from_raw って Rc 複製目的でも使える……?ほんまか?
いや駄目ですね、 Rc::{from,into}_raw は refcount を弄らないので
let temp = Rc::from_raw(ptr);
let rc = temp.clone();
Rc::into_raw(temp);
みたいにすれば一応安全にポインタから Rc を複製できるか