I needed this for a kind of index that allows me to subscribe to a tag in a git repo, but also get notified on a rebase or a head pointer move.
I was getting bogged down in the details (Git is a single-linked list starting at the head, so walking over it from the first commits to the newest commits is tricky)
This iterator seems to fulfil my needs around tracking the position within the list, and being able to reset.
The meta
API (pointer, implements error interface, has other methods for checking if rewound or EOF) seems to be as neat as one could hope to expect.