Announcing the rebirth of Zelda, a type-safe intrusive linked list mixin (well, two of them). The original Zelda had its own showcase, but under the circumstances I felt a clean break with the past was indicated.
usingnamespace is gone (but not forgotten). Technically OG Zelda did not depend on the presence of usingnamespace in the language, the implementation didn’t use it, user code could stick with the List types or manually import the functions into the namespace. Still, what fun is that?
zelda 0.2.0 makes use of the approved zero-width field hack, with acceptable results.
While I was at it, I took the opportunity to rectify some names, clarify the invariants, add a few more operations, and enhance the library with sorting, and, for doubly-linked lists, matching and filtering as well.
Singly-linked lists will most likely gain matching and filtering abilities as well, I’m just out of time for now.
I know most of you don’t use linked lists, and when you do, you hand-roll them in the finest C style. Well that’s the nice thing about mixins: if and when you realize that it would be real handy to sort your list, bring in Zelda, which will do that. No need to touch your already-written list traversals.
Or just roll with Zelda from go. Up to you.