For the `seek` operation of OpenDAL's `reader`, if seek to a negative or overflowing position, it will cause panic unexpectedly. How to reproduce? ```rs let r = op.reader("path/to/file") r.seek(SeekFrom::Current(-1024)) ``` ``` Error occurred: Unexpected (permanent) at Reader::seek => invalid seek to a negative or overflowing position ``` What we expected? It will not cause panic and return the error in the `seek`'s result --- related discussion: https://discord.com/channels/1081052318650339399/1122785258501308497/1129261665146388490