public function stream_seek($aOffset, $aWhence): bool
    {
        switch ($aWhence) {
            case SEEK_SET:
                $this->position = $aOffset;
                $this->truncate_after_seek();

                return true;
                break;

            case SEEK_CUR:
                $this->position += $aOffset;
                $this->truncate_after_seek();

                return true;
                break;

            case SEEK_END:
                $this->position = strlen($this->string) + $aOffset;
                $this->truncate_after_seek();

                return true;
                break;

            default:
                return false;
        }
    }