The opset iterator was using `OpTreeInternal::get(index)` to fetch each
successive element of the OpSet. This is pretty slow. We make this much
faster by implementing an iterator which is aware of the internal
structure of the OpTree.
This speeds up the save benchmark by about 10%.
Signed-off-by: Alex Good <alex@memoryandthought.me>
The cloning of the op was eating up a significant part of the increment
operation's time. This makes it zero-clone and just extracts the fields
needed.
The docs aren't built with deps so it should be relatively quick to do
without a cache. The cache is also messing with keeping things from
previous versions (e.g. edit-trace).
commit 97a36e728e
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Fri Apr 8 03:24:46 2022 -0600
Updated the unit test suites.
commit 56e2beb946
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Fri Apr 8 03:22:30 2022 -0600
Tied the lifetime of an `AMobjId` struct to its
owning `AMdoc` struct.
commit e16c980b2e
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Fri Apr 8 03:21:26 2022 -0600
Reverted the `AMobjId` struct to being an opaque
type.
Added `AMobjId::new()`to fix a compilation error.
Tied the lifetime of an `AMobjId` struct to its owning `AMdoc` struct.
Added the `AMvalue::ChangeHash` variant.
commit 7c769b2cfe
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Fri Apr 8 03:12:15 2022 -0600
Renamed the `AMobj` struct to `AMobjId` for
clarity.
Reverted the `AMobjId` struct to being an opaque type.
Tied the lifetime of an `AMobjId` struct to its owning `AMdoc` struct.
Renamed `AMcreate()` to `AMallocDoc()` for consistency with C's standard
library functions.
Renamed `AMdestroy()` to `AMfreeDoc()` for consistency with C's standard
library functions.
Renamed the `obj` function arguments to `obj_id` for clarity.
Replaced the "set" verb in function names with the "put" verb for
consistency iwth recent API changes.
Renamed `AMclear()` to `AMfreeResult()` for consistency with C's
standard library functions.
Added `AMfreeObjId()` to enable dropping a persisted `AMojbId` struct.
commit 8d1b3bfcf2
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Fri Apr 8 02:52:52 2022 -0600
Added a field for persisting `AMobjId` structs to the
`AMdoc` struct.
Renamed `AMdoc::create()` to `AMdoc::new()` to be more idiomatic.
Added `AMdoc::insert_object()` and `AMdoc::set_object()` for persisting
`AMobjId` structs.
Added `AMdoc::drop_obj_id()` to enable dropping a persisted `AMobjId`
struct.
commit b9b0f96357
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Thu Mar 17 15:17:08 2022 -0700
Ensure CMake targets can be built after a clean.
commit d565db1ea8
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Thu Mar 17 15:10:09 2022 -0700
Prevent unnecessary updating of the generated
header file.
commit d3647e75d3
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Wed Mar 16 02:50:59 2022 -0700
Documented the `AMObj.ID` struct member.
commit cc58cbf4bb
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Wed Mar 16 02:03:37 2022 -0700
Normalize the formatting of the `AMobjType_tag()`
function.
commit c2954dd2c7
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Wed Mar 16 02:02:03 2022 -0700
Remove superfluous backslashes.
commit bcb6e759a4
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Wed Mar 16 02:01:33 2022 -0700
Removed the `AMconfig()` function.
Implemented the `AMgetActor()` function.
Added the `AMgetActorHex()` function.
Added the `AMsetActor()` function.
Added the `AMsetActorHex()` function.
commit 9b2c566b9e
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Wed Mar 16 01:50:31 2022 -0700
Added the "hex" and "smol_str" crate dependencies
to the C API.
commit 99e06e1f73
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Wed Mar 16 01:06:15 2022 -0700
Corrected a spelling error.
commit 629b19c71d
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Sun Mar 13 20:30:54 2022 -0700
Align backslashes.
commit 09d25a32b7
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Sun Mar 13 20:30:23 2022 -0700
Add EOF linefeed.
commit 4ed14ee748
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Sun Mar 13 20:05:30 2022 -0700
Fix "fmt" CI job violations.
commit f53b40625d
Merge: 7d5538d8e1f8d769
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Sun Mar 13 16:34:11 2022 -0700
Merge branch 'c_api_exp' of https://github.com/automerge/automerge-rs into c_api_exp
commit 7d5538d8a4
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Sun Mar 13 16:31:22 2022 -0700
Updated the C API's unit test suite.
commit 335cd1c85f
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Sun Mar 13 16:27:39 2022 -0700
Removed superfluous `AMobj` traits.
commit 420f8cab64
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Sun Mar 13 16:25:48 2022 -0700
Moved the `AMobj` struct into the `result` module.
Changed the `AMobj` struct into an enum.
Added the `AMbyteSpan` struct.
Added the `AMvalue` enum.
Added the `AMresult::Nothing` variant.
commit 4eca88ff01
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Sun Mar 13 15:56:06 2022 -0700
Normalized all type name prefixes to "AM".
Reduced the `AMstatus` enum's `<type>Ok` tags to a single `Ok` tag.
Removed the `to_obj` macro.
Added the `to_obj_id` macro.
Moved the `AMobj` struct into the `result` module.
Added the `AMresult::Nothing` variant.
Added the `AMresultSize` function.
Added the `AMresultValue` function.
Added the `AMlistGet` function.
Added the `AMmapGet` function.
Removed the `AMgetObj` function.
Added the `AMobjSize` function.
commit 2f94c6fd90
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Sun Mar 13 15:29:02 2022 -0700
Compensate for unconfigurable cbindgen behavior.
Prevent Doxygen documentation regeneration.
commit 5de00b7998
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Sun Mar 13 15:24:45 2022 -0700
Alphabetized the cbindgen settings.
commit e1f8d769f4
Author: Orion Henry <orion.henry@gmail.com>
Date: Thu Mar 10 08:53:07 2022 -0500
update authors
commit 3e5525f1a6
Merge: f4ba17701c21abc5
Author: Orion Henry <orionz@users.noreply.github.com>
Date: Wed Mar 9 14:36:29 2022 -0500
Merge pull request #304 from jkankiewicz/c_api_exp
Fix "fmt" workflow step violations
commit 1c21abc5a3
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Wed Mar 9 11:13:01 2022 -0800
Fix CMake and Rust code formatting issues.
commit f4ba1770a9
Merge: bf1ae609f41b30d1
Author: Orion Henry <orionz@users.noreply.github.com>
Date: Wed Mar 9 12:05:58 2022 -0500
Merge pull request #300 from jkankiewicz/c_api_exp
Add unit test suites for the `AMlistSet*` and `AMmapSet*` functions
commit f41b30d118
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Tue Mar 8 22:08:36 2022 -0800
Added a brief description of the `AmObjType` enum.
Added the `AmStatus` enum to the enum docs page.
commit af7386a482
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Tue Mar 8 21:50:52 2022 -0800
Added a unit test suite for the `AMlistSet*`
functions.
commit 1eb70c6eee
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Tue Mar 8 21:42:42 2022 -0800
Added the rest of the `AMlistSet*` functions.
Started the enum tags at `1` so they won't be
inherently false.
Alphabetized enum tags for the docs.
Improved the docs.
commit 6489cba13b
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Tue Mar 8 18:01:46 2022 -0800
Alphabetize functions in the docs.
commit 74c245b82d
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Tue Mar 8 07:54:25 2022 -0800
Fix a typo in `AMmapSetObject()`'s documentation.
commit b2a879ba4e
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Tue Mar 8 06:24:22 2022 -0800
Append missing EOF linefeed.
commit fbf0f29b66
Merge: c56d54b5bf1ae609
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Tue Mar 8 01:08:12 2022 -0800
Merge branch 'c_api_exp' of https://github.com/automerge/automerge-rs into c_api_exp
commit c56d54b565
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Tue Mar 8 01:07:11 2022 -0800
Added unit test cases for the new `AMmapSet*`
functions by @orionz.
Moved the unit test cases for the `AMmapSet*` functions into their own
unit test suite.
commit 7e59b55760
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Tue Mar 8 01:01:47 2022 -0800
Edited the Doxygen documentation.
commit bf1ae60913
Author: Orion Henry <orion.henry@gmail.com>
Date: Mon Mar 7 11:59:22 2022 -0500
fmt
commit e82a7cc78e
Merge: a44e69d2965c2d56
Author: Orion Henry <orionz@users.noreply.github.com>
Date: Mon Mar 7 11:55:32 2022 -0500
Merge pull request #299 from jkankiewicz/c_api_exp
Enable unit testing of the C API
commit 965c2d56c3
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Mon Mar 7 06:37:36 2022 -0800
Enable unit testing of the C API.
commit a44e69d2c7
Author: Orion Henry <orion.henry@gmail.com>
Date: Sun Mar 6 14:00:46 2022 -0500
remove datatype mapset
commit 88153c44e7
Merge: 41512e9cc6194e97
Author: Orion Henry <orionz@users.noreply.github.com>
Date: Sun Mar 6 10:32:39 2022 -0500
Merge pull request #298 from jkankiewicz/rebase_c_api_exp
Rebase the "c_api_exp" branch on the "experiment" branch
commit c6194e9732
Merge: a2d745c841512e9c
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Sun Mar 6 01:09:56 2022 -0800
Merge branch 'c_api_exp' into rebase_c_api_exp
commit a2d745c8d9
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Sun Mar 6 00:44:37 2022 -0800
Replace the `utils::import_value` function with
the `utils::import_scalar` function.
Exclude `# Safety` comments from the documentation.
commit 0681e28b40
Author: Orion Henry <orion.henry@gmail.com>
Date: Thu Mar 3 16:04:17 2022 -0500
support new as_ref api
commit 916e23fcc2
Author: Orion Henry <orion.henry@gmail.com>
Date: Thu Mar 3 15:56:27 2022 -0500
fmt
commit 71cd6a1f18
Author: Orion Henry <orion.henry@gmail.com>
Date: Thu Mar 3 15:54:38 2022 -0500
lock data at 64 bit - no c_long
commit e00bd4c201
Author: Orion Henry <orion.henry@gmail.com>
Date: Thu Mar 3 15:27:55 2022 -0500
verbose
commit 39d157c554
Author: Orion Henry <orion.henry@gmail.com>
Date: Thu Mar 3 14:56:23 2022 -0500
clippy cleanup
commit 7f650fb8e0
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Wed Feb 23 02:14:06 2022 -0800
Added Doxygen documentation generation.
Renamed `AMDatatype` to `AmDataType`.
Reorganized the `AmDataType` tags.
Renamed `AMfree()` to `AMdestroy()`.
Renamed `AMclone()` to `AMdup()`.
commit b0b803eef8
Author: Orion Henry <orion.henry@gmail.com>
Date: Tue Feb 22 11:30:42 2022 -0500
get simple test passing
commit cab9017ffa
Author: Orion Henry <orion.henry@gmail.com>
Date: Wed Feb 9 15:50:44 2022 -0500
rework to return a queriable result
commit a557e848f3
Author: Jason Kankiewicz <you@example.com>
Date: Mon Feb 14 14:38:00 2022 -0800
Add a CI step to run the CMake build of the C bindings for @alexjg.
commit c8c0c72f3b
Author: Jason Kankiewicz <you@example.com>
Date: Mon Feb 14 14:09:58 2022 -0800
Add CMake instructions for @orionz.
commit fb62c4b02a
Author: Jason Kankiewicz <you@example.com>
Date: Thu Feb 10 23:28:54 2022 -0800
Add CMake support.
commit 7bc3bb6850
Author: Jason Kankiewicz <you@example.com>
Date: Thu Feb 10 22:49:53 2022 -0800
Replace *intptr_t in C function signatures.
commit 60395a2db0
Author: Orion Henry <orion.henry@gmail.com>
Date: Sun Feb 6 18:59:19 2022 -0500
am_pop and am_pop_value
commit b1e88047d2
Author: Orion Henry <orion.henry@gmail.com>
Date: Thu Feb 3 19:43:36 2022 -0500
break the ground
commit 41512e9c78
Author: Orion Henry <orion.henry@gmail.com>
Date: Thu Mar 3 16:04:17 2022 -0500
support new as_ref api
commit bcee6a9623
Merge: cf98f78d9a89db3f
Author: Orion Henry <orion.henry@gmail.com>
Date: Thu Mar 3 15:58:19 2022 -0500
Merge remote-tracking branch 'origin/experiment' into c_api_exp
commit cf98f78dd1
Author: Orion Henry <orion.henry@gmail.com>
Date: Thu Mar 3 15:56:27 2022 -0500
fmt
commit 3c1f449c5c
Author: Orion Henry <orion.henry@gmail.com>
Date: Thu Mar 3 15:54:38 2022 -0500
lock data at 64 bit - no c_long
commit 2c2ec0b0c5
Author: Orion Henry <orion.henry@gmail.com>
Date: Thu Mar 3 15:27:55 2022 -0500
verbose
commit b72b9c989a
Author: Orion Henry <orion.henry@gmail.com>
Date: Thu Mar 3 14:56:23 2022 -0500
clippy cleanup
commit 3ba28f91cc
Author: Jason Kankiewicz <jason.kankiewicz@gmail.com>
Date: Wed Feb 23 02:14:06 2022 -0800
Added Doxygen documentation generation.
Renamed `AMDatatype` to `AmDataType`.
Reorganized the `AmDataType` tags.
Renamed `AMfree()` to `AMdestroy()`.
Renamed `AMclone()` to `AMdup()`.
commit 8564e5b753
Author: Orion Henry <orion.henry@gmail.com>
Date: Tue Feb 22 11:30:42 2022 -0500
get simple test passing
commit 60835e6ae7
Author: Orion Henry <orion.henry@gmail.com>
Date: Wed Feb 9 15:50:44 2022 -0500
rework to return a queriable result
commit 89466d9e8c
Author: Jason Kankiewicz <you@example.com>
Date: Mon Feb 14 14:38:00 2022 -0800
Add a CI step to run the CMake build of the C bindings for @alexjg.
commit e2485bd5fd
Author: Jason Kankiewicz <you@example.com>
Date: Mon Feb 14 14:09:58 2022 -0800
Add CMake instructions for @orionz.
commit b5cc7dd63d
Author: Jason Kankiewicz <you@example.com>
Date: Thu Feb 10 23:28:54 2022 -0800
Add CMake support.
commit 685536f0cf
Author: Jason Kankiewicz <you@example.com>
Date: Thu Feb 10 22:49:53 2022 -0800
Replace *intptr_t in C function signatures.
commit c1c6e7bb66
Author: Orion Henry <orion.henry@gmail.com>
Date: Sun Feb 6 18:59:19 2022 -0500
am_pop and am_pop_value
commit e68c8d347e
Author: Orion Henry <orion.henry@gmail.com>
Date: Thu Feb 3 19:43:36 2022 -0500
break the ground