def stay(read_func, *args, **kwargs):
  """ stay at current memory location after read

  Args:
    Callable: read function, which takes mmap as first input
  Return:
    Callable: read but no change to mmap tell()
  """
  def wrapper(mm, *args, **kwargs):
    idx = mm.tell()
    ret = read_func(mm, *args, **kwargs)
    mm.seek(idx)
    return ret
  return wrapper