blob: 4de78bcca0b5ba567e9ff7c4c1cd180331b9a80f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
// A revision-checked byte edit. The input carries only the replacement.
// UTF-8 cursor/grapheme positions are translated to byte ranges by the UI.
layout Edit {
start: u32le;
remove: u32le;
insert: bytes;
}
on get {
let document = store.read(request.key);
reply(document, document.body);
}
on put {
let edit = view(Edit, request.body);
let saved = store.splice(request.key, request.revision,
edit.start, edit.remove, edit.insert);
reply(saved, edit.insert);
}
|