Incidentally, if we fix `self.len()` to return `0` for a null buffer, then this existing impl will *probably* work, subject to the behavior of `ptr::copy_nonoverlapping_memory(null, buf, 0)`.