It seems like the implementation of this function is very expensive, since it means that it has to copy the whoie internal buffer on every `.read`. I guess it needs a deque of some sort so that a read is essentially just shifting a pointer/index, rather than an O(n) copy.