Lender

This is just my own personal Rust practice, trying to implement a lending iterator.

Check out the [lending-iterator] crate for a full implementation of lending iterators, it's lead by the great Daniel Henry-Mantilla, who knows much more about this than I do and is one of the lead champions of Higher-Kinded things like this in the Rust community. The [streaming-iterator] crate is also a great crate if you only need to iterate over a reference to an item.

If, for whatever unknown reason, you want to use this crate instead of [lending-iterator], this is licensed under the MIT or Apache-2.0 license, as I've obviously repurposed much of the code from the Rust Core Library and using it.

People & Resources

I couldn't have even hoped to begin trying to use this problem as practice without relying on help from the following people and resources, please check them out:

Unsafe & Transmutes Beware!!!

Many patterns in lending iterators require polonius-emulating unsafe code, but please, if you see any unsafe code that can be made safe, please let me know! I am still learning Rust and I'm sure I've made many mistakes.