I sat down to hack, and wrote half a screen of code in CAPITAL LETTERS, because I was in a mood (still am, but I toggled off my shift lock). Oops.
Anyway, today I'm starting off with an iocaine3->iocaine4 configuration migrator, because I need other ideas to settle first.
It's not a fully automatic migrator, there are places where iocaine3 and iocaine4 are incompatible to a level that cannot be automatically translated. In those cases, the tool will provide hints.
What I'm unsure about is... how do I handle loading the old, iocaine3 config? That's currently implemented in the
iocainecrate, and the structs aren't public. Do I make them public? Or do I... copy the code?I'm leaning towards the latter, because making structs public in a non-library crate feels wrong, and I don't want anyone else to use those structs either, they're private interfaces in iocaine3.