static <R> CloseableIterator<R> wrap(Iterator<R> inner) {
        return new CloseableIterator<R>() {
            @Override
            public void close() {
            }

            @Override
            public boolean hasNext() {
                return inner.hasNext();
            }

            @Override
            public R next() {
                return inner.next();
            }

            @Override
            public void remove() {
                inner.remove();
            }
        };
    }
Iterators that need to be closed in order to release resources should implement this interface.
<p>
Warning: before implementing this interface, consider if there are better options. The chance of misuse is
a bit high since people are used to iterating without closing.
s3stream/src/main/java/com/automq/stream/utils/CloseableIterator.java