Commit graph

902 commits

Author SHA1 Message Date
Orion Henry
8eb147333c use value_at() in the js wrapper 2021-12-21 09:23:34 -08:00
Orion Henry
265ce823da implement all the query_at(), add tests, was, cut dead code 2021-12-21 09:23:34 -08:00
Alex Good
6a63d30a56 Add some rust tests
This commit adds a bunch of testing infrastructure as well as most of
the tests from the `legacy_tests.js` file in the js codebase that seem
applicable to this codebase.
2021-12-20 17:54:40 -08:00
Alex Good
f22be2ade7 Make Automerge::visualise succinct, include succ
This abbreviates actor IDs so that object IDs are more readable and also
includes successor operation IDs in the op tables
2021-12-20 09:28:07 -08:00
Alex Good
4181f503aa UPdate Automerge::visualise to work with OpSet
The OpSet has multiple OpTrees in it so we update the visualisation
logic to show an op tree graph for each object in the OpSet.
2021-12-20 09:28:07 -08:00
Alex Good
48e01a6333 Add Automerge::visualise for debugging the optree
The OpTree is a reasonably complicated data structure. This change adds
a method on the OpTree which is then exposed through
`Automerge::visualise` which prints the structure of the OpTree in
graphviz format. Each node in the tree is printed as a simple table of
operations with outgoing edges to tables representing the children of
the node. This is behind a compile time flag (optree-visualisation)
because it's probably not useful except when debugging.
2021-12-20 09:28:07 -08:00
Alex Good
e435957125 Update README with details of the new implementation 2021-12-19 17:12:56 -08:00
Orion Henry
a305f77de3 Merge branch 'noop' into experiment 2021-12-19 20:08:46 -05:00
Orion Henry
70bd0aee53 simplify index.replace 2021-12-19 19:58:43 -05:00
Orion Henry
b7eae836d5 Merge branch 'experiment' of github.com:automerge/automerge-rs into experiment 2021-12-19 14:20:55 -05:00
Orion Henry
1f0989cbb0 break op set into one per object 2021-12-19 14:18:02 -05:00
Andrew Jeffery
e6b806b458
Add criterion benchmarks for Rust (#248) 2021-12-19 14:59:40 +00:00
Alex Good
962340805c
automerge::set - don't generate ops for noops
Repeatedly setting the same value for a particular (obj, key)
combination now no longer generates an operation. To allow this we
modify the return value of `automerge::set` so that it may return an
`Option<OpId>` instead of an `OpId`.

Signed-off-by: Alex Good <alex@memoryandthought.me>
2021-12-18 15:57:03 +00:00
Orion Henry
fc89a26302 first pass for sync in js/wasm 2021-12-18 00:22:20 -05:00
Orion Henry
25eeb256e0 remove cargo.lock from project 2021-12-17 21:19:33 -05:00
Orion Henry
503ee1ca19 Merge branch 'experiment' of github.com:automerge/automerge-rs into experiment 2021-12-17 21:15:05 -05:00
Orion Henry
1739a7e7b1 encode/decode sync in wasm 2021-12-17 21:14:16 -05:00
Andrew Jeffery
ed6975d7ee Make a rust workspace 2021-12-17 23:41:34 +00:00
Andrew Jeffery
a0f9612be9 Fixup readme and add makefile 2021-12-17 23:37:21 +00:00
Andrew Jeffery
c5f6ffc4cd Fix wasm build 2021-12-17 23:36:38 +00:00
Orion Henry
9c237c7f00 remove expanded_op and internal_op_type 2021-12-17 12:39:26 -05:00
Orion Henry
702117b996 move change_hash out of legacy, removing diff 2021-12-17 12:13:43 -05:00
Orion Henry
90244236c3 move important items out of legacy 2021-12-17 11:33:05 -05:00
Orion Henry
6b517b9894 move things we need out of legacy 2021-12-17 11:04:35 -05:00
Orion Henry
b2f339e714 update packages - get legacy tests passing 2021-12-17 10:36:02 -05:00
Orion Henry
4c83416abf cheers to andrew who found a faster B value on the tree 2021-12-17 10:19:15 -05:00
Orion Henry
0ac2407815 cargo fmt 2021-12-17 09:52:57 -05:00
Andrew Jeffery
a2191e2643 Add nix config 2021-12-17 11:48:14 +00:00
Orion Henry
db3a43c5b6 import protocol into legacy 2021-12-16 20:39:08 -05:00
Andrew Jeffery
0c417f02b2 Improve ergonomics of the main API 2021-12-16 05:46:01 -08:00
Andrew Jeffery
1bd54d5489 Optimise last function on op_tree
Rather than iterating through the children we can just skip straight to
the last. The last element is always in a leaf so we also don't need to
care about intermediate values.
2021-12-16 09:45:12 +00:00
Andrew Jeffery
54b02095fe Fix automerge-protocol dependency to use git 2021-12-16 09:41:34 +00:00
Orion Henry
26ccaf63cc readme and new tests 2021-12-15 19:07:39 -05:00
Orion Henry
0c284992cd stub out text_at 2021-12-13 10:52:06 -05:00
Orion Henry
850db4a35b objid vs opid was not useful as an external type 2021-12-13 10:45:43 -05:00
Orion Henry
0c96d504bc getting ready for at(clock) api 2021-12-13 10:28:49 -05:00
Orion Henry
f31fa308b3 add len query - remove obj specific code from tree 2021-12-13 10:12:40 -05:00
Orion Henry
d99d0dbf47 cleanup value 2021-12-13 09:55:31 -05:00
Orion Henry
0f9115c54f cleaned up edit trace, added docs 2021-12-13 09:20:49 -05:00
Orion Henry
89a2e4a0fa remove old seq_scan code 2021-12-13 07:45:38 -05:00
Orion Henry
a1a7e42dfa remove begin - make tx implicit 2021-12-12 12:51:27 -08:00
Orion Henry
406a20707f seek_op, inc test, logging 2021-12-12 09:27:51 -08:00
Orion Henry
e2b63ca102 adding text() and splice_text() 2021-12-10 15:20:19 -08:00
Orion Henry
670de06bdf rework op_set query system 2021-12-10 15:35:51 -05:00
Orion Henry
09f073d902 refactor query system - wip 2021-12-09 23:23:23 -05:00
Orion Henry
3ba7e2fb7f make length fast - fix bug in index 2021-12-07 15:00:21 -05:00
Orion Henry
bbfb2337d5 save_incremental() 2021-12-06 15:23:18 -05:00
Orion Henry
0cc815ef74 move query logic into trait, format 2021-12-06 11:09:08 -05:00
Orion Henry
70b482b827 go faster 2021-12-03 21:56:59 -08:00
Orion Henry
4fe61e42d4 splice 2021-11-30 11:29:51 -08:00