An interpreter for pseudo-assembly as defined in the Computer Science Coursebook for Cambridge International AS & A Level, second edition, by Langfield & Duddell.
Use BTreeMap<usize, usize>, getting rid of MemEntry and its complicated machinery. Only assign new addresses to memory that has a label. Memory with raw addresses remains untouched.
f => Ok(Self::Parent($parent::from_func_ptr(f)?)),
Matching against function pointers is not reliable and will become a hard error once rust-lang/rust#124661 lands, as was decided in rust-lang/rfcs#3535. I recommend comparing with == instead (though that will be just as unreliable).