Andrew Jeffery
885a763766
Calculate pred_for_key before deleting the key ( #183 )
2021-06-20 12:46:50 +01:00
Andrew Jeffery
987263b25d
Add SortedVec struct to ensure preds are sorted ( #176 )
...
* Add SortedVec struct to ensure preds are sorted
* Add into_iter for sortedvec
2021-06-19 17:25:25 +01:00
Andrew Jeffery
fc1b8f87fb
Use SmolStr in place of String ( #182 )
...
Most of the strings are small and so fit nicely in a SmolStr. When they
don't it just reverts to using a normal String.
2021-06-19 16:28:51 +01: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
98dbd6150e
Mutation tracker rollback ( #165 )
...
* Make set and delete operations return the old value
* Add rollback to MutableDocument
* Use rollback in optimistically_apply_change
2021-06-16 14:16:48 +01:00
Andrew Jeffery
0f0e9e827a
New value zero copy multivalue ( #170 )
...
* Remove copying when making a multivalue from a newvalue
* Optimise cursors in new value
* Make key be a value not reference
* Rename union to extend
2021-06-16 12:16:31 +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
4821cdd766
Calculate pred for deletion from text before deleting ( #174 )
2021-06-16 11:49:58 +01:00
Andrew Jeffery
f224940fdc
Fix Frontend debug struct name ( #172 )
2021-06-16 09:22:06 +01:00
Andrew Jeffery
14af0738dd
Remove MapType from Map and add Table variant ( #168 )
...
This simplifies the Value enum and hides the protocol internals from the
variants.
2021-06-14 21:26:02 +01:00
Andrew Jeffery
a6e955abfd
Rework statetree to be a tree ( #156 )
2021-06-14 11:08:14 +01:00
Andrew Jeffery
a744637787
Add get_value to Value ( #160 )
2021-06-10 14:13:50 +01:00
Andrew Jeffery
098074dd1e
Add AsRef for Value ( #162 )
2021-06-09 16:51:56 +01:00
Andrew Jeffery
b8d282db61
Add more derived traits for Path ( #163 )
2021-06-09 11:06:54 +01:00
Andrew Jeffery
28459f868f
Remove value_at_path ( #159 )
...
This has the same functionality as get_value and we only need one.
2021-06-07 10:18:00 +01:00
Andrew Jeffery
edf9edd35e
Simplify apply root diff ( #150 )
2021-05-26 11:45:30 +01:00
Andrew Jeffery
51f50b8f5c
diffable seq: Avoid rebuilding the updating list each time ( #149 )
...
This means we can keep things in the original state but while applying
the diff we don't have to keep building a new vec each time.
This makes B1.1 run in ~11 seconds for me.
2021-05-26 09:17:08 +01:00
Andrew Jeffery
949d7b9f62
Remove unused variables
...
These were likely used at one point but now just incur an expensive
allocation cost. This reduces the B1.1 Append N characters benchmark
from ~19s to ~16s.
2021-05-25 22:45:36 +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
b6db78329a
Satisfy clippy
2021-05-24 13:17:37 -07:00
Vedant Roy
6539029eaa
Add apply_patch 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
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
2c9e68d344
Implement PartialEq on more structs
2021-05-19 22:38:41 +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
Andrew Jeffery
e2e7483a07
Use elem id from insertion in frontend ( #134 )
2021-05-18 21:24:55 +01:00
Alex Good
9bbaf7cbd5
Merge branch 'main' into implement-new-sequence-patch-format
2021-05-17 13:03:57 +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
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
Andrew Jeffery
2aa35bc349
Add derive Arbitrary support behind cargo feature ( #124 )
2021-05-14 16:38:35 +01:00
Andrew Jeffery
9ace8892f6
Remove unchanged diff
...
Uses empty edits or props instead.
2021-05-11 12:48:45 +01:00
Andrew Jeffery
6050f39d46
Change patch diffs to start with mapdiff
2021-05-11 09:26:19 +01:00
Andrew Jeffery
59a24081d2
Switch to expanded_op more
2021-05-10 19:25:43 +01:00
Andrew Jeffery
d794ad4dd5
Update diffedit naming of fields and add comments
...
This brings the DiffEdit types more in line with the typescript ones and
fixes the names. Also changed to using match guards in the append_edit
function so we can take edit by value.
2021-05-10 13:19:48 +01:00
Andrew Jeffery
708db48fbb
Fixup after rebase
2021-05-05 21:58:18 +01:00
Alex Good
e86aabb6a3
Implement new sequence patch format
2021-05-05 21:52:57 +01:00
Andrew Jeffery
3a8447c068
Remove automerge bench harness ( #106 )
...
This removes the default wrapper which throws errors with some cli
arguments, e.g. --save-baseline which is nice for being able to compare
versions!
2021-04-27 10:30:07 +01:00
Andrew Jeffery
d1934f2286
Add formatting config
2021-04-26 09:42:36 -07:00
Andrew Jeffery
aebfdc6572
Update patches with pending_changes
2021-04-24 14:25:31 -07:00
Everett Pompeii
fb59ce746d
Fix typo ( #98 )
...
Add `u` to `structure`.
2021-04-20 21:45:40 +01:00
Andrew Jeffery
fc45ff09a3
Allow change to return value from users closure ( #84 )
...
* Allow change to return value from users closure
* Add closure_result field to OptimisticChangeResult
2021-04-15 10:49:04 +01:00
Andrew Jeffery
9c5f7f8482
Change Increment operation to use i64 ( #79 )
2021-04-15 10:35:17 +01:00
Andrew Jeffery
d3d1b48c48
Cleanup box on frontend
2021-03-31 08:59:38 -07:00
Andrew Jeffery
d17554dfc4
Remove rc on backend
2021-03-31 08:59:38 -07:00
Andrew Jeffery
f9513cf970
Fix benchmarks using text ( #74 )
...
* Fix benchmarks using text
* CI: change --all to --all-targets
--all is a deprecated alias to --workspace where we also want to build
all targets: benches, tests, examples etc.
2021-03-31 10:41:08 +01:00