* e.g. ``` struct BaseIp { ptr: BasePtr } struct Tx { b: BaseIP } impl BaseIp { fn tx(&mut self) -> Tx { Tx { self } } ``` I guess I sort of need a ref count like shared object in this case? Rc\<> or Arc\<> or whatever, but that also seems kind of insane... in the end its a pointer to the address of the IP block I'm sharing