Note that for slices it doesn't need to end in a null, any byte will do. A null there just means that `as_c_str` won't have to make a copy if you call that function, while requiring a null in general means you might have to always copy.