diff --git a/src/lib.rs b/src/lib.rs index 7b76749..d9ea91d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,5 @@ mod node_ref; -// mod links_offset; +mod links; pub use node_ref::*; +pub use links::*; diff --git a/src/links.rs b/src/links.rs new file mode 100644 index 0000000..12bfea1 --- /dev/null +++ b/src/links.rs @@ -0,0 +1,11 @@ +pub trait LinkedStructLinksTypeProvider { + type Links: Sized; +} + +pub trait LinkedStructLinksOffset: LinkedStructLinksTypeProvider { + type Node; + + fn getLinks(nodeRef: &Self::Node, consumer: impl FnOnce(&Self::Links) -> R) -> R; + + fn getLinksMut(nodeRef: &mut Self::Node, consumer: impl FnOnce(&mut Self::Links) -> R) -> R; +}