pub fn insert_str(&mut self, idx: usize, string: &str) {
        assert!(self.is_char_boundary(idx));

        unsafe {
            self.insert_bytes(idx, string.as_bytes());
        }
    }
Splits the string into two at the given byte index.

Returns a newly allocated `String`. `self` contains bytes `[0, at)`, and
the returned `String` contains bytes `[at, len)`. `at` must be on the
boundary of a UTF-8 code point.

Note that the capacity of `self` does not change.

# Panics

Panics if `at` is not on a `UTF-8` code point boundary, or if it is beyond the last
code point of the string.

# Examples

```
# fn main() {
let mut hello = String::from("Hello, World!");
benchmarks/haystacks/code/rust-library.rs