Puts a writable layer of bytes over some byte stream
```txt +-----------------+------------+-----------------+-------+----------------------+-------+-----------------+ | chunk 0 | chunk 1 | chunk 2 | 3 | chunk 4 | 5 | chunk 6 | +-----------------+------------+-----------------+-------+----------------------+-------+-----------------+
+-----------------+ +----------------------+
+-----------------+ +----------------------+
+-------------------+ +---------------------+
+-------------------+ +---------------------+
+---------------------------------------------------------------------------------------------------------+ +---------------------------------------------------------------------------------------------------------+ ```
```rust use std::io::{Cursor, Read, Seek, SeekFrom}; use memoverlay::MemOverlay; use memoverlay::overlay;
let message1 = "hello, world!"; let mut overlay = overlay!(message1.asbytes()); overlay.addbytesat(7, "peter".asbytes()).unwrap();
let mut message2 = String::new(); let _ = overlay.readtostring(&mut message2).unwrap(); overlay.seek(SeekFrom::Start(0)).unwrap();
assert_eq!(message2, "hello, peter!");
overlay.addbytesat(1, "a".asbytes()).unwrap(); let mut message3 = String::new(); let _ = overlay.readtostring(&mut message3).unwrap(); overlay.seek(SeekFrom::Start(0)).unwrap(); asserteq!(message3, "hallo, peter!");
overlay.addbytesat(1, "o".asbytes()).unwrap(); overlay.addbytesat(5, "w".asbytes()).unwrap(); let mut message4 = String::new(); let _ = overlay.readtostring(&mut message4).unwrap(); assert_eq!(message4, "hollow peter!"); ```