@Override
    public int hashCode() {
        int result = (int) (logStartOffset ^ (logStartOffset >>> 32));
        result = 31 * result + (logEndOffset != null ? logEndOffset.hashCode() : 0);
        result = 31 * result + (highWatermark != null ? highWatermark.hashCode() : 0);
        result = 31 * result + (lastStableOffset != null ? lastStableOffset.hashCode() : 0);
        return result;
    }
Container class which represents a snapshot of the significant offsets for a partition. This allows fetching
of these offsets atomically without the possibility of a leader change affecting their consistency relative
to each other. See {@link UnifiedLog#fetchOffsetSnapshot()}.
storage/src/main/java/org/apache/kafka/storage/internals/log/LogOffsetSnapshot.java