I try to rewrite boltdb in rust for learning. I reference to nut, then I found struct like this :
pub(crate) struct NodeInner {
/// associated bucket
pub(super) bucket: *const Bucket,
/// is node is leaf element
pub(super) is_leaf: AtomicBool,
............
}
I dislike raw point used here because I think it is not in Rust style. So I try to use reference like
pub(crate) struct NodeInner {
pub(super) bucket:&'a Bucket
...
}
then I have to propogate lifetime identifier 'a every where. Finally I don't know how to let cargo check no errros. I can not cope with so many 'a.
Is it necessary to use raw pointer here?
How to organize data struct in boltdb like node,page,tx,bucket in a Rust style?