116
117
public static deserialize(source: ArrayBuffer): SingleModelEditStackData {
119
>
let offset = 0;
120
>
const beforeVersionId = buffer.readUInt32BE(b, offset); offset += 4;
121
>
const afterVersionId = buffer.readUInt32BE(b, offset); offset += 4;
122
>
const beforeEOL = buffer.readUInt8(b, offset); offset += 1;
123
>
const afterEOL = buffer.readUInt8(b, offset); offset += 1;
124
>
const beforeCursorState: Selection[] = [];
125
>
offset = SingleModelEditStackData._readSelections(b, offset, beforeCursorState);
126
>
const afterCursorState: Selection[] = [];
127
>
offset = SingleModelEditStackData._readSelections(b, offset, afterCursorState);
128
>
const changeCount = buffer.readUInt32BE(b, offset); offset += 4;
129
>
const changes: TextChange[] = [];
130
>
for (let i = 0; i < changeCount; i++) {
131
>
offset = TextChange.read(b, offset, changes);
132
>
}
133
>
return new SingleModelEditStackData(
134
>
beforeVersionId,
135
>
afterVersionId,
136
>
beforeEOL,
137
>
afterEOL,
138
>
beforeCursorState,
139
>
afterCursorState,
140
>
changes
141
>
);
142
>
}
143
}
144