Commit graph

882 commits

Author SHA1 Message Date
Vedant Roy
2c51761d01 Implement getAddedChanges 2021-05-24 13:15:20 -07:00
Orion Henry
506d1e61ca
Merge pull request #88 from automerge/implement-new-sequence-patch-format
Implement new sequence patch format
2021-05-24 13:11:19 -07:00
Orion Henry
6ebb63bfdd Merge branch 'main' into implement-new-sequence-patch-format 2021-05-24 15:50:19 -04:00
Orion Henry
17b0d2eb38 cleanup for clippy 2021-05-24 15:07:13 -04:00
Orion Henry
3465517ab3 handle conflicts in list parent modifications 2021-05-24 14:59:09 -04:00
Andrew Jeffery
8af065e8f6
Merge pull request #144 from automerge/expose-encoding-decoding-errors
Make `encoding::Error` and `decoding::Error` public.
2021-05-21 14:13:49 +01:00
Andrew Jeffery
c2f2ded69f Make encoding and decoding errors public 2021-05-21 14:00:17 +01:00
Andrew Jeffery
d5dfefb704
Fix backend panics (#141)
* Fix a panic when indexing the bytes

* Fix leb failing to read enough bytes

* Fix another panic out of bounds

* Use get rather than checking

* Check addition with arbitrary val

* Add backend load fuzzing

* Handle no ops sub

* Fix another index out of bounds
2021-05-20 11:24:23 +01:00
Andrew Jeffery
a0bd33e5a6
Refactor travis to have more jobs (#120)
* Refactor travis to have more jobs
2021-05-20 11:01:54 +01:00
Andrew Jeffery
e75864a549
Merge pull request #140 from automerge/mismatched-sequence-number
Add mismatched sequence number failing test
2021-05-20 08:50:35 +01:00
Andrew Jeffery
d31f704a32 Fix transfer of frontend states when we don't make a change 2021-05-19 22:40:58 +01:00
Andrew Jeffery
ab90ec85f5 Add mismatched sequence number failing test 2021-05-19 22:38:41 +01:00
Andrew Jeffery
2c9e68d344 Implement PartialEq on more structs 2021-05-19 22:38:41 +01:00
Andrew Jeffery
46ff9eabee Apply clippy suggestion 2021-05-19 22:10:09 +01:00
Andrew Jeffery
37717f2798 Cargo fmt 2021-05-19 19:10:47 +01:00
Andrew Jeffery
098cfc585d
Fix expansion of multi insert indexes (#138) 2021-05-19 19:08:52 +01:00
Andrew Jeffery
e619a34c5c Remove dbg 2021-05-19 10:44:25 +01:00
Vedant Roy
ddc9c6d4ce Add missing Safety header 2021-05-18 16:25:19 -04:00
Vedant Roy
0df5444669 Better sync test
Multiple round trips + exercise encode/decode
2021-05-18 16:25:19 -04:00
Vedant Roy
4b7886dfe6 Remove unused var 2021-05-18 16:25:19 -04:00
Vedant Roy
acf4f19cd5 Make comment clearer 2021-05-18 16:25:19 -04:00
Vedant Roy
98c6ac876d Implement encode/decode for SyncState 2021-05-18 16:25:19 -04:00
Andrew Jeffery
e2e7483a07
Use elem id from insertion in frontend (#134) 2021-05-18 21:24:55 +01:00
Orion Henry
f47ba3c46a small error slipped through 2021-05-18 10:59:39 -04:00
Vedant Roy
6a4a3c5a00 Don't use ..Default::default() + formatting? 2021-05-18 07:50:35 -07:00
Vedant Roy
1b76115f27 Add unsafe docs + remove extraneous file 2021-05-18 07:50:35 -07:00
Vedant Roy
c274d18528 Add test for sync c bindings 2021-05-18 07:50:35 -07:00
Vedant Roy
305d089180 Add untested C-bindings for sync state 2021-05-18 07:50:35 -07:00
Alex Good
87410e4c8f Add comment explaining why it doesn't work 2021-05-17 19:53:36 +01:00
Alex Good
9bbaf7cbd5 Merge branch 'main' into implement-new-sequence-patch-format 2021-05-17 13:03:57 +01:00
Andrew Jeffery
426ccbc818
Expose event handler id (#132) 2021-05-16 20:16:54 +01:00
Andrew Jeffery
5637956895 Add custom RootDiff type
This ensures that the patch starts with the right diff type statically
and will give an error to js during deserialization.
2021-05-16 14:02:57 +01:00
Andrew Jeffery
30a89cb49d Fix clippy lints 2021-05-16 13:10:28 +01:00
Andrew Jeffery
2e07e93e72 Change patches diffs to be non-optional 2021-05-16 13:01:37 +01:00
Andrew Jeffery
f2025028cf Fix elem_id in get_patch test 2021-05-15 19:38:11 +01:00
Andrew Jeffery
553bf1f8ef Handle overwriting inserts with updates from the same actor 2021-05-15 19:14:16 +01:00
Andrew Jeffery
96eef611d0 Default head to index 0 2021-05-15 18:05:25 +01:00
Andrew Jeffery
7c4858e686 Fix obtaining index for set operation 2021-05-15 18:01:03 +01:00
Alex Good
6eb96f2816 Split patch generation out of OpSet 2021-05-14 21:56:24 +01:00
Andrew Jeffery
641fd11703
Change init to new and add defaults (#130)
Structs should use `new` for the constructor name and implement
`Default` where they can.
2021-05-14 21:35:09 +01:00
Alex Good
df3770477b Move initial patch generation to patches::from_scratch_diff 2021-05-14 21:13:07 +01:00
Alex Good
7d3e0ccc37 Move pending diffs into new patches module 2021-05-14 20:42:04 +01:00
Andrew Jeffery
d82e2ed217
Improve filter_changes for sync (#126)
* Improve filter_changes for sync

This helps to avoid traversing the entire graph when we get a successive
change that we know can't be a predecessor of the heads.

Also filter_changes shouldn't be globally public.
2021-05-14 20:20:27 +01:00
Andrew Jeffery
f6f874439b
Move decoding to a new module and separate errors (#129) 2021-05-14 20:20:05 +01:00
Andrew Jeffery
2aa35bc349
Add derive Arbitrary support behind cargo feature (#124) 2021-05-14 16:38:35 +01:00
Alex Good
3d5590f90a wip 2021-05-13 18:39:05 +01:00
Alex Good
7ccaae92fd Add test for updates inside conflicted list elements 2021-05-12 23:00:03 +01:00
Andrew Jeffery
5713f4263f Update op id 2021-05-12 16:29:24 +01:00
Andrew Jeffery
d36149e3ce Update js hash 2021-05-12 16:16:05 +01:00
Andrew Jeffery
576a2736f6 Sort diffs by actor id 2021-05-12 15:11:14 +01:00