extend move info field by three bits for future usage

This commit is contained in:
Kevin Jahns 2022-07-19 11:07:56 +02:00
parent 4de3c004a8
commit efcfe4b483

View File

@ -256,7 +256,7 @@ export class ContentMove {
*/ */
write (encoder, offset) { write (encoder, offset) {
const isCollapsed = this.isCollapsed() const isCollapsed = this.isCollapsed()
encoding.writeVarUint(encoder.restEncoder, (isCollapsed ? 1 : 0) | (this.start.assoc >= 0 ? 2 : 0) | (this.end.assoc >= 0 ? 4 : 0) | this.priority << 3) encoding.writeVarUint(encoder.restEncoder, (isCollapsed ? 1 : 0) | (this.start.assoc >= 0 ? 2 : 0) | (this.end.assoc >= 0 ? 4 : 0) | this.priority << 6)
writeID(encoder.restEncoder, /** @type {ID} */ (this.start.item)) writeID(encoder.restEncoder, /** @type {ID} */ (this.start.item))
if (!isCollapsed) { if (!isCollapsed) {
writeID(encoder.restEncoder, /** @type {ID} */ (this.end.item)) writeID(encoder.restEncoder, /** @type {ID} */ (this.end.item))
@ -286,7 +286,9 @@ export const readContentMove = decoder => {
const isCollapsed = (info & 1) === 1 const isCollapsed = (info & 1) === 1
const startAssoc = (info & 2) === 2 ? 0 : -1 const startAssoc = (info & 2) === 2 ? 0 : -1
const endAssoc = (info & 4) === 4 ? 0 : -1 const endAssoc = (info & 4) === 4 ? 0 : -1
const priority = info >>> 3 // @TODO use BIT3 & BIT4 to indicate the case `null` is the start/end
// BIT5 is reserved for future extensions
const priority = info >>> 6
const startId = readID(decoder.restDecoder) const startId = readID(decoder.restDecoder)
const start = new RelativePosition(null, null, startId, startAssoc) const start = new RelativePosition(null, null, startId, startAssoc)
const end = new RelativePosition(null, null, isCollapsed ? startId : readID(decoder.restDecoder), endAssoc) const end = new RelativePosition(null, null, isCollapsed ? startId : readID(decoder.restDecoder), endAssoc)