This is awesome and I've needed it often. Could it hypothetically support filtered undo? For example in a collaborative app where not all edits are owned by the user.
I think you can do that with undoredo by doing all the following:
- Having one history bistack for each user or permissions group to enforce ownership;
- Giving each new object's a unique key (e.g. from a counter, possibly a persistent one) to prevent key collisions by avoiding ever trying to fill the same container slot more than once;
- Storing the objects in a sparse container such as BTreeMap, BTreeSet, HashMap, HashSet to avoid visiting emptied slots when iterating over all the elements.
I have not tested this, but it could be a nice case to add to examples.
(having used a bullet list I immediately feel the need to explain myself: this message was whole written by hand)
We are doing something related; taking the TipToi tech and getting it with our own pen to turn paper into interfaces that can control remote systems. See Https://papiro.press (the pages are still being redesigned, but we needed some placeholders to be able to talk to Chinese factories)
Though it's somewhat clear from the use of tiles with the icon colours and the choice of border colours and all, I quite like it. I would have expected the colour theme from the navbar to be repeated because that's a more non standard palette. I would do that, maybe use a different tile layout (use a tile shape resembling a pool tile? Or even a rectangle signifying a typical pool shape) and create some vector icons for them using the navbar colour scheme.
I am in somewhat of the same boat for https://parture.org. Have a quite large CRDT system with unique ID's that is also type-safe, does not rely on serde_json::Value juggling, every CRDT is structurally valid and it knows what CRDT's cannot be applied to a Rust struct based on some business logic. I am wondering whether such checks (type-safety, business logic) can be worked into the CRDT application process. Automerge seems mostly meant for text editing, but they do have Autosurgeon though it hasn't been updated in a while
reply