public static long GetSeekPosition(long length, long position, long seekOffset, SeekOrigin origin) { switch (origin) { case SeekOrigin.Begin: return seekOffset; case SeekOrigin.End: return length + seekOffset; case SeekOrigin.Current: return position + seekOffset; } throw Assert.Unreachable; }
public override long Seek(long offset, SeekOrigin origin) { return(Position = RubyIO.GetSeekPosition(_string.GetByteCount(), _position, offset, origin)); }