Commit graph

397 commits

Author SHA1 Message Date
Orion Henry
ffa49c8aca off by one 2021-06-19 13:29:59 -04:00
Orion Henry
ca74c33dcc finished basic seek_to_op + test + bugs 2021-06-18 19:20:52 -04:00
Orion Henry
0cd13e0c10 more mark2 2021-06-18 19:11:33 -04:00
Orion Henry
781aab84b8 missing mark2/mod.rs 2021-06-18 19:11:33 -04:00
Orion Henry
eb69472e25 mark2 2021-06-18 19:11:33 -04:00
Vedant Roy
ea35a7f6cf Rebase + clippy 2021-06-18 11:25:39 -04:00
Vedant Roy
6c4623592b Satisfy clippy 2021-06-18 11:14:42 -04:00
Vedant Roy
f55c91c5d1 Tests pass 2021-06-18 11:14:42 -04:00
Vedant Roy
b304ba3ce3 Fix bug in tests? (Pretty sure it was a bug) 2021-06-18 11:14:42 -04:00
Vedant Roy
71306777d4 condense_insert_ops failing 2021-06-18 11:14:42 -04:00
Vedant Roy
5dc37464af Remove F32 2021-06-18 11:13:46 -04:00
Vedant Roy
858392062f Ensure values have same type when constructing MultiElementInsert 2021-06-18 11:13:10 -04:00
Andrew Jeffery
ff8b8613d5
Flatten objtype (#175)
* Flatten object type

* Use separate construct functions

* Use separate gen_*_diff functions

* Remove maptype and seqtype from Diffs

* Preallocate ops in new_map_or_table

* More preallocations
2021-06-17 20:06:10 +01:00
Andrew Jeffery
79239cc6a4
Improve load performance when no cursors are present (#171)
* Add save and load to benchmarks

* Improve load performance when no cursors are found
2021-06-16 11:50:49 +01:00
Andrew Jeffery
8b3938c2e7
Rename UncompressedChange to Change (#173)
It wasn't really uncompressed as we have compressed and uncompressed
changes in the backend. It is just not encoded into the binary format.
The module separation (protocol vs backend) should help with the
distinction.
2021-06-16 11:50:26 +01:00
Andrew Jeffery
71b59dea68
Set levels for instrument (#164) 2021-06-14 23:34:35 +01:00
Orion Henry
647b8d2af2 fix deflate column decode order 2021-06-12 15:01:38 -07:00
Orion Henry
d8a56d966e added binary search to doc decode for big speedup 2021-05-29 13:34:03 -07:00
Andrew Jeffery
e98ed15582 Sort predecessors during encoding 2021-05-25 11:29:25 +01:00
Orion Henry
72d15bfe99 a few things broke in the merge 2021-05-24 16:27:05 -04:00
Vedant Roy
aaccefcb11 Switch back to using Vec<u8> 2021-05-24 13:17:37 -07:00
Vedant Roy
bc249bb630 Fix serialization + add test 2021-05-24 13:17:37 -07:00
Vedant Roy
22af56b059 Internal representation = base64 string 2021-05-24 13:17:37 -07:00
Vedant Roy
41021f398f Add bytes type 2021-05-24 13:17:37 -07:00
Vedant Roy
73bc44edbc Add comments from JS version 2021-05-24 13:15:20 -07:00
Vedant Roy
e694370733 Fix inverted bool + return correct data + remove serde 2021-05-24 13:15:20 -07:00
Vedant Roy
2c51761d01 Implement getAddedChanges 2021-05-24 13:15:20 -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
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
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
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