codemp/dist/java/src/mp/code/data/BufferUpdate.java

35 lines
985 B
Java

package mp.code.data;
import lombok.EqualsAndHashCode;
import lombok.RequiredArgsConstructor;
import lombok.ToString;
import mp.code.Extensions;
import java.util.OptionalLong;
/**
* A data class holding information about a buffer update.
*/
@ToString
@EqualsAndHashCode
@RequiredArgsConstructor
@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
public class BufferUpdate {
/**
* The hash of the content after applying it (calculated with {@link Extensions#hash(String)}).
* It is generally meaningless to send, but when received it is an invitation to check the hash
* and forcefully re-sync if necessary.
*/
public final OptionalLong hash; // xxh3 hash
/**
* The CRDT version after the associated change has been applied.
* You MUST acknowledge that it was applied with {@link mp.code.BufferController#ack(long[])}.
*/
public final long[] version;
/**
* The {@link TextChange} contained in this buffer update.
*/
public final TextChange change;
}