another rust solution
gitignore updates
factor common behavior out into a library
these should take borrowed pointers
another rust solution
use str::with_capacity here too