This is an unfortunate pattern that I'm seeing all over the place. This results in a fair amount of code duplication not only between branches but across callsites. The `null_byte` condition is raised on in a lot of places so it's a little hard to keep track of. Perhaps this could be refactored with something like `fn without_nulls<T: BytesContainer>(t: &T, f: &fn(&[u8]))` or something like that?