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
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
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
6539029eaa
Add apply_patch test
2021-05-24 13:17:37 -07: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
2e07e93e72
Change patches diffs to be non-optional
2021-05-16 13:01:37 +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
Alex Good
e86aabb6a3
Implement new sequence patch format
2021-05-05 21:52:57 +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
Andrew Jeffery
239fe59090
Use grapheme clusters in Text instead of char ( #72 )
...
* Use grapheme clusters in Text instead of char
char is not what users typically expect as a 'letter' so we should use
grapheme clusters instead. These can't always be represented as single
rust char types so the Text now stores a Vec of single grapheme Strings.
* Add test for grapheme clusters in text
* Use debug_assert_eq instead of debug_assert
2021-03-28 21:32:03 +01:00
Alex Good
c103b0638e
Ritual abasement at the altar of clippy
2021-03-02 19:35:00 +00:00
Alex Good
4f4674a4a1
Implement cursors in frontend
2021-03-02 16:07:52 +00:00
Alex Good
8516476db2
Fix handling of Unchanged diffs in StateTreeValue::new_from_diff
2021-01-19 14:55:54 +00:00
Alex Good
497372db99
Immutable frontend rewrite
2021-01-16 17:40:47 +00:00
Alex Good
d7560d88ed
Start making errors more descriptive
2020-06-04 00:32:18 +01:00
Alex Good
2cf2835e76
Make Patch::clock keys ActorID rather than String
2020-05-30 01:44:00 +01:00
Alex Good
a36a364443
Rename automerge_protocol::Value -> ScalarValue
2020-05-29 21:04:29 +01:00
Alex Good
baaebef6d1
Merge branch 'master' into two-level-objtype
2020-05-25 18:47:46 +01:00
Orion Henry
ab71d01487
internal types impl COPY
2020-05-25 09:43:28 -04:00
Alex Good
2443cdf860
Remove objtype wrapper for diffs
2020-05-24 11:06:23 +01:00
Alex Good
40c8f8f9b3
Move ObjType to two level hierarchy
2020-05-24 10:22:18 +01:00
Alex Good
2567efcc70
Port apply local patch tests
2020-05-22 15:11:42 +01:00