pub fn push(&mut self, ch: char) {
        match ch.len_utf8() {
            1 => self.vec.push(ch as u8),
            _ => self.vec.extend_from_slice(ch.encode_utf8(&mut [0; 4]).as_bytes()),
        }
    }
Removes a [`char`] from this `String` at a byte position and returns it.

This is an *O*(*n*) operation, as it requires copying every element in the
buffer.

# Panics

Panics if `idx` is larger than or equal to the `String`'s length,
or if it does not lie on a [`char`] boundary.

# Examples

Basic usage:

```
let mut s = String::from("foo");

assert_eq!(s.remove(0), 'f');
assert_eq!
benchmarks/haystacks/code/rust-library.rs