automerge-rb 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (481) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +22 -0
  3. data/README.md +175 -0
  4. data/ext/automerge_ext/automerge_ext.c +1805 -0
  5. data/ext/automerge_ext/extconf.rb +132 -0
  6. data/lib/automerge/version.rb +6 -0
  7. data/lib/automerge.rb +110 -0
  8. data/rust-toolchain.toml +4 -0
  9. data/vendor/automerge-rust/Cargo.lock +1909 -0
  10. data/vendor/automerge-rust/Cargo.toml +15 -0
  11. data/vendor/automerge-rust/automerge/Cargo.toml +78 -0
  12. data/vendor/automerge-rust/automerge/README.md +5 -0
  13. data/vendor/automerge-rust/automerge/benches/load_save.rs +102 -0
  14. data/vendor/automerge-rust/automerge/benches/map.rs +260 -0
  15. data/vendor/automerge-rust/automerge/benches/range.rs +37 -0
  16. data/vendor/automerge-rust/automerge/benches/sync.rs +95 -0
  17. data/vendor/automerge-rust/automerge/examples/README.md +7 -0
  18. data/vendor/automerge-rust/automerge/examples/quickstart.rs +57 -0
  19. data/vendor/automerge-rust/automerge/examples/watch.rs +94 -0
  20. data/vendor/automerge-rust/automerge/fuzz/Cargo.toml +29 -0
  21. data/vendor/automerge-rust/automerge/fuzz/fuzz_targets/load.rs +37 -0
  22. data/vendor/automerge-rust/automerge/src/autocommit.rs +1286 -0
  23. data/vendor/automerge-rust/automerge/src/automerge/current_state.rs +546 -0
  24. data/vendor/automerge-rust/automerge/src/automerge/tests.rs +2023 -0
  25. data/vendor/automerge-rust/automerge/src/automerge.rs +2071 -0
  26. data/vendor/automerge-rust/automerge/src/autoserde.rs +128 -0
  27. data/vendor/automerge-rust/automerge/src/change.rs +357 -0
  28. data/vendor/automerge-rust/automerge/src/change_graph.rs +1215 -0
  29. data/vendor/automerge-rust/automerge/src/change_queue.rs +46 -0
  30. data/vendor/automerge-rust/automerge/src/clock.rs +206 -0
  31. data/vendor/automerge-rust/automerge/src/columnar/column_range/boolean.rs +83 -0
  32. data/vendor/automerge-rust/automerge/src/columnar/column_range/delta.rs +148 -0
  33. data/vendor/automerge-rust/automerge/src/columnar/column_range/generic/group.rs +138 -0
  34. data/vendor/automerge-rust/automerge/src/columnar/column_range/generic/simple.rs +76 -0
  35. data/vendor/automerge-rust/automerge/src/columnar/column_range/generic.rs +93 -0
  36. data/vendor/automerge-rust/automerge/src/columnar/column_range/key.rs +272 -0
  37. data/vendor/automerge-rust/automerge/src/columnar/column_range/obj_id.rs +202 -0
  38. data/vendor/automerge-rust/automerge/src/columnar/column_range/opid_list.rs +329 -0
  39. data/vendor/automerge-rust/automerge/src/columnar/column_range/raw.rs +38 -0
  40. data/vendor/automerge-rust/automerge/src/columnar/column_range/rle.rs +216 -0
  41. data/vendor/automerge-rust/automerge/src/columnar/column_range/value.rs +547 -0
  42. data/vendor/automerge-rust/automerge/src/columnar/column_range.rs +17 -0
  43. data/vendor/automerge-rust/automerge/src/columnar/encoding/boolean.rs +197 -0
  44. data/vendor/automerge-rust/automerge/src/columnar/encoding/col_error.rs +88 -0
  45. data/vendor/automerge-rust/automerge/src/columnar/encoding/column_decoder.rs +133 -0
  46. data/vendor/automerge-rust/automerge/src/columnar/encoding/decodable_impls.rs +175 -0
  47. data/vendor/automerge-rust/automerge/src/columnar/encoding/delta.rs +96 -0
  48. data/vendor/automerge-rust/automerge/src/columnar/encoding/encodable_impls.rs +200 -0
  49. data/vendor/automerge-rust/automerge/src/columnar/encoding/leb128.rs +82 -0
  50. data/vendor/automerge-rust/automerge/src/columnar/encoding/properties.rs +178 -0
  51. data/vendor/automerge-rust/automerge/src/columnar/encoding/raw.rs +101 -0
  52. data/vendor/automerge-rust/automerge/src/columnar/encoding/rle.rs +239 -0
  53. data/vendor/automerge-rust/automerge/src/columnar/encoding.rs +67 -0
  54. data/vendor/automerge-rust/automerge/src/columnar/splice_error.rs +47 -0
  55. data/vendor/automerge-rust/automerge/src/columnar.rs +14 -0
  56. data/vendor/automerge-rust/automerge/src/convert.rs +112 -0
  57. data/vendor/automerge-rust/automerge/src/cursor.rs +296 -0
  58. data/vendor/automerge-rust/automerge/src/decoding.rs +475 -0
  59. data/vendor/automerge-rust/automerge/src/error.rs +159 -0
  60. data/vendor/automerge-rust/automerge/src/exid.rs +238 -0
  61. data/vendor/automerge-rust/automerge/src/hydrate/list.rs +140 -0
  62. data/vendor/automerge-rust/automerge/src/hydrate/map.rs +132 -0
  63. data/vendor/automerge-rust/automerge/src/hydrate/tests.rs +40 -0
  64. data/vendor/automerge-rust/automerge/src/hydrate/text.rs +89 -0
  65. data/vendor/automerge-rust/automerge/src/hydrate.rs +368 -0
  66. data/vendor/automerge-rust/automerge/src/indexed_cache.rs +113 -0
  67. data/vendor/automerge-rust/automerge/src/iter/doc.rs +603 -0
  68. data/vendor/automerge-rust/automerge/src/iter/keys.rs +93 -0
  69. data/vendor/automerge-rust/automerge/src/iter/list_range.rs +433 -0
  70. data/vendor/automerge-rust/automerge/src/iter/map_range.rs +316 -0
  71. data/vendor/automerge-rust/automerge/src/iter/spans.rs +601 -0
  72. data/vendor/automerge-rust/automerge/src/iter/tools.rs +427 -0
  73. data/vendor/automerge-rust/automerge/src/iter/values.rs +36 -0
  74. data/vendor/automerge-rust/automerge/src/iter.rs +25 -0
  75. data/vendor/automerge-rust/automerge/src/legacy/mod.rs +364 -0
  76. data/vendor/automerge-rust/automerge/src/legacy/serde_impls/actor_id.rs +25 -0
  77. data/vendor/automerge-rust/automerge/src/legacy/serde_impls/change_hash.rs +29 -0
  78. data/vendor/automerge-rust/automerge/src/legacy/serde_impls/element_id.rs +27 -0
  79. data/vendor/automerge-rust/automerge/src/legacy/serde_impls/mod.rs +31 -0
  80. data/vendor/automerge-rust/automerge/src/legacy/serde_impls/object_id.rs +36 -0
  81. data/vendor/automerge-rust/automerge/src/legacy/serde_impls/op.rs +668 -0
  82. data/vendor/automerge-rust/automerge/src/legacy/serde_impls/op_type.rs +26 -0
  83. data/vendor/automerge-rust/automerge/src/legacy/serde_impls/opid.rs +25 -0
  84. data/vendor/automerge-rust/automerge/src/legacy/serde_impls/scalar_value.rs +63 -0
  85. data/vendor/automerge-rust/automerge/src/legacy/utility_impls/element_id.rs +66 -0
  86. data/vendor/automerge-rust/automerge/src/legacy/utility_impls/key.rs +49 -0
  87. data/vendor/automerge-rust/automerge/src/legacy/utility_impls/mod.rs +4 -0
  88. data/vendor/automerge-rust/automerge/src/legacy/utility_impls/object_id.rs +74 -0
  89. data/vendor/automerge-rust/automerge/src/legacy/utility_impls/opid.rs +68 -0
  90. data/vendor/automerge-rust/automerge/src/lib.rs +315 -0
  91. data/vendor/automerge-rust/automerge/src/marks.rs +478 -0
  92. data/vendor/automerge-rust/automerge/src/op_set2/change/batch.rs +2002 -0
  93. data/vendor/automerge-rust/automerge/src/op_set2/change/collector.rs +974 -0
  94. data/vendor/automerge-rust/automerge/src/op_set2/change.rs +332 -0
  95. data/vendor/automerge-rust/automerge/src/op_set2/columns.rs +714 -0
  96. data/vendor/automerge-rust/automerge/src/op_set2/meta.rs +174 -0
  97. data/vendor/automerge-rust/automerge/src/op_set2/op.rs +1363 -0
  98. data/vendor/automerge-rust/automerge/src/op_set2/op_set/elems.rs +43 -0
  99. data/vendor/automerge-rust/automerge/src/op_set2/op_set/found_op.rs +60 -0
  100. data/vendor/automerge-rust/automerge/src/op_set2/op_set/index.rs +197 -0
  101. data/vendor/automerge-rust/automerge/src/op_set2/op_set/insert.rs +179 -0
  102. data/vendor/automerge-rust/automerge/src/op_set2/op_set/mark_index.rs +292 -0
  103. data/vendor/automerge-rust/automerge/src/op_set2/op_set/marks.rs +86 -0
  104. data/vendor/automerge-rust/automerge/src/op_set2/op_set/op_iter.rs +1295 -0
  105. data/vendor/automerge-rust/automerge/src/op_set2/op_set/op_query.rs +82 -0
  106. data/vendor/automerge-rust/automerge/src/op_set2/op_set/top_op.rs +50 -0
  107. data/vendor/automerge-rust/automerge/src/op_set2/op_set/visible.rs +290 -0
  108. data/vendor/automerge-rust/automerge/src/op_set2/op_set.rs +1793 -0
  109. data/vendor/automerge-rust/automerge/src/op_set2/parents.rs +133 -0
  110. data/vendor/automerge-rust/automerge/src/op_set2/skip_list.rs +714 -0
  111. data/vendor/automerge-rust/automerge/src/op_set2/types.rs +769 -0
  112. data/vendor/automerge-rust/automerge/src/op_set2.rs +18 -0
  113. data/vendor/automerge-rust/automerge/src/patches/patch.rs +95 -0
  114. data/vendor/automerge-rust/automerge/src/patches/patch_builder.rs +382 -0
  115. data/vendor/automerge-rust/automerge/src/patches/patch_log.rs +584 -0
  116. data/vendor/automerge-rust/automerge/src/patches.rs +7 -0
  117. data/vendor/automerge-rust/automerge/src/query/list_state.rs +230 -0
  118. data/vendor/automerge-rust/automerge/src/query/seek_mark.rs +142 -0
  119. data/vendor/automerge-rust/automerge/src/read.rs +326 -0
  120. data/vendor/automerge-rust/automerge/src/sequence_tree.rs +662 -0
  121. data/vendor/automerge-rust/automerge/src/storage/bundle/builder.rs +942 -0
  122. data/vendor/automerge-rust/automerge/src/storage/bundle/error.rs +42 -0
  123. data/vendor/automerge-rust/automerge/src/storage/bundle/meta.rs +23 -0
  124. data/vendor/automerge-rust/automerge/src/storage/bundle/storage.rs +146 -0
  125. data/vendor/automerge-rust/automerge/src/storage/bundle.rs +210 -0
  126. data/vendor/automerge-rust/automerge/src/storage/change/change_actors.rs +311 -0
  127. data/vendor/automerge-rust/automerge/src/storage/change/change_op_columns.rs +621 -0
  128. data/vendor/automerge-rust/automerge/src/storage/change/compressed.rs +51 -0
  129. data/vendor/automerge-rust/automerge/src/storage/change/op_with_change_actors.rs +1 -0
  130. data/vendor/automerge-rust/automerge/src/storage/change.rs +523 -0
  131. data/vendor/automerge-rust/automerge/src/storage/chunk.rs +312 -0
  132. data/vendor/automerge-rust/automerge/src/storage/columns/column.rs +42 -0
  133. data/vendor/automerge-rust/automerge/src/storage/columns/column_builder.rs +199 -0
  134. data/vendor/automerge-rust/automerge/src/storage/columns/column_specification.rs +340 -0
  135. data/vendor/automerge-rust/automerge/src/storage/columns/raw_column.rs +286 -0
  136. data/vendor/automerge-rust/automerge/src/storage/columns.rs +355 -0
  137. data/vendor/automerge-rust/automerge/src/storage/document/compression.rs +362 -0
  138. data/vendor/automerge-rust/automerge/src/storage/document.rs +411 -0
  139. data/vendor/automerge-rust/automerge/src/storage/load/change_collector.rs +15 -0
  140. data/vendor/automerge-rust/automerge/src/storage/load.rs +136 -0
  141. data/vendor/automerge-rust/automerge/src/storage/parse/leb128.rs +302 -0
  142. data/vendor/automerge-rust/automerge/src/storage/parse.rs +619 -0
  143. data/vendor/automerge-rust/automerge/src/storage/save/document.rs +27 -0
  144. data/vendor/automerge-rust/automerge/src/storage.rs +26 -0
  145. data/vendor/automerge-rust/automerge/src/sync/bloom.rs +161 -0
  146. data/vendor/automerge-rust/automerge/src/sync/message_builder.rs +118 -0
  147. data/vendor/automerge-rust/automerge/src/sync/state.rs +214 -0
  148. data/vendor/automerge-rust/automerge/src/sync/v1_compat_test/bloom.rs +162 -0
  149. data/vendor/automerge-rust/automerge/src/sync/v1_compat_test/mod.rs +625 -0
  150. data/vendor/automerge-rust/automerge/src/sync/v1_compat_test/state.rs +120 -0
  151. data/vendor/automerge-rust/automerge/src/sync.rs +2482 -0
  152. data/vendor/automerge-rust/automerge/src/text_diff/LICENSE +201 -0
  153. data/vendor/automerge-rust/automerge/src/text_diff/myers.rs +332 -0
  154. data/vendor/automerge-rust/automerge/src/text_diff/replace.rs +139 -0
  155. data/vendor/automerge-rust/automerge/src/text_diff/utils.rs +119 -0
  156. data/vendor/automerge-rust/automerge/src/text_diff.rs +515 -0
  157. data/vendor/automerge-rust/automerge/src/text_value.rs +276 -0
  158. data/vendor/automerge-rust/automerge/src/transaction/commit.rs +34 -0
  159. data/vendor/automerge-rust/automerge/src/transaction/inner.rs +1403 -0
  160. data/vendor/automerge-rust/automerge/src/transaction/manual_transaction.rs +147 -0
  161. data/vendor/automerge-rust/automerge/src/transaction/owned_transaction.rs +266 -0
  162. data/vendor/automerge-rust/automerge/src/transaction/result.rs +21 -0
  163. data/vendor/automerge-rust/automerge/src/transaction/transactable.rs +203 -0
  164. data/vendor/automerge-rust/automerge/src/transaction.rs +513 -0
  165. data/vendor/automerge-rust/automerge/src/types.rs +749 -0
  166. data/vendor/automerge-rust/automerge/src/validation.rs +29 -0
  167. data/vendor/automerge-rust/automerge/src/value.rs +763 -0
  168. data/vendor/automerge-rust/automerge/tests/batch_insert.rs +1034 -0
  169. data/vendor/automerge-rust/automerge/tests/block_tests.rs +887 -0
  170. data/vendor/automerge-rust/automerge/tests/convert_string_to_text.rs +72 -0
  171. data/vendor/automerge-rust/automerge/tests/diff_marks.rs +1508 -0
  172. data/vendor/automerge-rust/automerge/tests/fixtures/64bit_obj_id_change.automerge +0 -0
  173. data/vendor/automerge-rust/automerge/tests/fixtures/64bit_obj_id_doc.automerge +0 -0
  174. data/vendor/automerge-rust/automerge/tests/fixtures/counter_value_has_incorrect_meta.automerge +0 -0
  175. data/vendor/automerge-rust/automerge/tests/fixtures/counter_value_is_ok.automerge +0 -0
  176. data/vendor/automerge-rust/automerge/tests/fixtures/counter_value_is_overlong.automerge +0 -0
  177. data/vendor/automerge-rust/automerge/tests/fixtures/two_change_chunks.automerge +0 -0
  178. data/vendor/automerge-rust/automerge/tests/fixtures/two_change_chunks_compressed.automerge +0 -0
  179. data/vendor/automerge-rust/automerge/tests/fixtures/two_change_chunks_out_of_order.automerge +0 -0
  180. data/vendor/automerge-rust/automerge/tests/fuzz-crashers/action-is-48.automerge +0 -0
  181. data/vendor/automerge-rust/automerge/tests/fuzz-crashers/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709 +0 -0
  182. data/vendor/automerge-rust/automerge/tests/fuzz-crashers/incorrect_max_op.automerge +0 -0
  183. data/vendor/automerge-rust/automerge/tests/fuzz-crashers/invalid_deflate_stream.automerge +0 -0
  184. data/vendor/automerge-rust/automerge/tests/fuzz-crashers/missing_actor.automerge +0 -0
  185. data/vendor/automerge-rust/automerge/tests/fuzz-crashers/overflow_in_length.automerge +0 -0
  186. data/vendor/automerge-rust/automerge/tests/fuzz-crashers/too_many_deps.automerge +0 -0
  187. data/vendor/automerge-rust/automerge/tests/fuzz-crashers/too_many_ops.automerge +0 -0
  188. data/vendor/automerge-rust/automerge/tests/test.rs +2668 -0
  189. data/vendor/automerge-rust/automerge/tests/test_mark_patches.rs +41 -0
  190. data/vendor/automerge-rust/automerge/tests/test_save_load_orphans.rs +84 -0
  191. data/vendor/automerge-rust/automerge/tests/text.rs +1098 -0
  192. data/vendor/automerge-rust/automerge/tests/text_encoding.rs +640 -0
  193. data/vendor/automerge-rust/automerge-c/CMakeLists.txt +439 -0
  194. data/vendor/automerge-rust/automerge-c/Cargo.toml +22 -0
  195. data/vendor/automerge-rust/automerge-c/README.md +233 -0
  196. data/vendor/automerge-rust/automerge-c/build.rs +21 -0
  197. data/vendor/automerge-rust/automerge-c/cbindgen.toml +48 -0
  198. data/vendor/automerge-rust/automerge-c/cmake/Cargo.toml.in +22 -0
  199. data/vendor/automerge-rust/automerge-c/cmake/automerge-c-config.cmake.in +99 -0
  200. data/vendor/automerge-rust/automerge-c/cmake/cbindgen.toml.in +48 -0
  201. data/vendor/automerge-rust/automerge-c/cmake/config.h.in +58 -0
  202. data/vendor/automerge-rust/automerge-c/cmake/enum-string-functions-gen.cmake +183 -0
  203. data/vendor/automerge-rust/automerge-c/cmake/file-regex-replace.cmake +33 -0
  204. data/vendor/automerge-rust/automerge-c/cmake/file-touch.cmake +35 -0
  205. data/vendor/automerge-rust/automerge-c/docs/CMakeLists.txt +39 -0
  206. data/vendor/automerge-rust/automerge-c/docs/img/brandmark.png +0 -0
  207. data/vendor/automerge-rust/automerge-c/examples/CMakeLists.txt +42 -0
  208. data/vendor/automerge-rust/automerge-c/examples/README.md +9 -0
  209. data/vendor/automerge-rust/automerge-c/examples/quickstart.c +131 -0
  210. data/vendor/automerge-rust/automerge-c/include/automerge-c/utils/result.h +30 -0
  211. data/vendor/automerge-rust/automerge-c/include/automerge-c/utils/stack.h +130 -0
  212. data/vendor/automerge-rust/automerge-c/include/automerge-c/utils/stack_callback_data.h +53 -0
  213. data/vendor/automerge-rust/automerge-c/include/automerge-c/utils/string.h +29 -0
  214. data/vendor/automerge-rust/automerge-c/src/actor_id.rs +193 -0
  215. data/vendor/automerge-rust/automerge-c/src/byte_span.rs +227 -0
  216. data/vendor/automerge-rust/automerge-c/src/change.rs +356 -0
  217. data/vendor/automerge-rust/automerge-c/src/cursor.rs +168 -0
  218. data/vendor/automerge-rust/automerge-c/src/doc/list.rs +636 -0
  219. data/vendor/automerge-rust/automerge-c/src/doc/map.rs +556 -0
  220. data/vendor/automerge-rust/automerge-c/src/doc/mark.rs +296 -0
  221. data/vendor/automerge-rust/automerge-c/src/doc/utils.rs +46 -0
  222. data/vendor/automerge-rust/automerge-c/src/doc.rs +1009 -0
  223. data/vendor/automerge-rust/automerge-c/src/index.rs +84 -0
  224. data/vendor/automerge-rust/automerge-c/src/item.rs +2177 -0
  225. data/vendor/automerge-rust/automerge-c/src/items.rs +401 -0
  226. data/vendor/automerge-rust/automerge-c/src/lib.rs +11 -0
  227. data/vendor/automerge-rust/automerge-c/src/obj.rs +216 -0
  228. data/vendor/automerge-rust/automerge-c/src/result.rs +653 -0
  229. data/vendor/automerge-rust/automerge-c/src/sync/have.rs +42 -0
  230. data/vendor/automerge-rust/automerge-c/src/sync/message.rs +146 -0
  231. data/vendor/automerge-rust/automerge-c/src/sync/state.rs +262 -0
  232. data/vendor/automerge-rust/automerge-c/src/sync.rs +7 -0
  233. data/vendor/automerge-rust/automerge-c/src/utils/result.c +33 -0
  234. data/vendor/automerge-rust/automerge-c/src/utils/stack.c +106 -0
  235. data/vendor/automerge-rust/automerge-c/src/utils/stack_callback_data.c +9 -0
  236. data/vendor/automerge-rust/automerge-c/src/utils/string.c +46 -0
  237. data/vendor/automerge-rust/automerge-c/test/CMakeLists.txt +67 -0
  238. data/vendor/automerge-rust/automerge-c/test/actor_id_tests.c +140 -0
  239. data/vendor/automerge-rust/automerge-c/test/base_state.c +17 -0
  240. data/vendor/automerge-rust/automerge-c/test/base_state.h +39 -0
  241. data/vendor/automerge-rust/automerge-c/test/byte_span_tests.c +119 -0
  242. data/vendor/automerge-rust/automerge-c/test/cmocka_utils.c +91 -0
  243. data/vendor/automerge-rust/automerge-c/test/cmocka_utils.h +42 -0
  244. data/vendor/automerge-rust/automerge-c/test/cursor_tests.c +263 -0
  245. data/vendor/automerge-rust/automerge-c/test/doc_state.c +27 -0
  246. data/vendor/automerge-rust/automerge-c/test/doc_state.h +17 -0
  247. data/vendor/automerge-rust/automerge-c/test/doc_tests.c +335 -0
  248. data/vendor/automerge-rust/automerge-c/test/enum_string_tests.c +148 -0
  249. data/vendor/automerge-rust/automerge-c/test/files/brave-ape-49.automerge +0 -0
  250. data/vendor/automerge-rust/automerge-c/test/item_tests.c +313 -0
  251. data/vendor/automerge-rust/automerge-c/test/list_tests.c +544 -0
  252. data/vendor/automerge-rust/automerge-c/test/macro_utils.c +38 -0
  253. data/vendor/automerge-rust/automerge-c/test/macro_utils.h +23 -0
  254. data/vendor/automerge-rust/automerge-c/test/main.c +33 -0
  255. data/vendor/automerge-rust/automerge-c/test/map_tests.c +1610 -0
  256. data/vendor/automerge-rust/automerge-c/test/mark_tests.c +124 -0
  257. data/vendor/automerge-rust/automerge-c/test/ported_wasm/basic_tests.c +1642 -0
  258. data/vendor/automerge-rust/automerge-c/test/ported_wasm/cursor_tests.c +108 -0
  259. data/vendor/automerge-rust/automerge-c/test/ported_wasm/suite.c +17 -0
  260. data/vendor/automerge-rust/automerge-c/test/ported_wasm/sync_tests.c +1280 -0
  261. data/vendor/automerge-rust/automerge-c/test/str_utils.c +15 -0
  262. data/vendor/automerge-rust/automerge-c/test/str_utils.h +17 -0
  263. data/vendor/automerge-rust/automerge-test/Cargo.toml +17 -0
  264. data/vendor/automerge-rust/automerge-test/README.md +3 -0
  265. data/vendor/automerge-rust/automerge-test/src/lib.rs +487 -0
  266. data/vendor/automerge-rust/hexane/CHANGELOG.md +34 -0
  267. data/vendor/automerge-rust/hexane/Cargo.toml +47 -0
  268. data/vendor/automerge-rust/hexane/README.md +292 -0
  269. data/vendor/automerge-rust/hexane/RESULTS.txt +20 -0
  270. data/vendor/automerge-rust/hexane/TODO +18 -0
  271. data/vendor/automerge-rust/hexane/benches/insert.rs +82 -0
  272. data/vendor/automerge-rust/hexane/benches/seek.rs +77 -0
  273. data/vendor/automerge-rust/hexane/benches/splice.rs +82 -0
  274. data/vendor/automerge-rust/hexane/src/aggregate.rs +288 -0
  275. data/vendor/automerge-rust/hexane/src/boolean.rs +478 -0
  276. data/vendor/automerge-rust/hexane/src/columndata.rs +2540 -0
  277. data/vendor/automerge-rust/hexane/src/cursor.rs +756 -0
  278. data/vendor/automerge-rust/hexane/src/delta.rs +793 -0
  279. data/vendor/automerge-rust/hexane/src/encoder.rs +639 -0
  280. data/vendor/automerge-rust/hexane/src/leb128.rs +82 -0
  281. data/vendor/automerge-rust/hexane/src/lib.rs +95 -0
  282. data/vendor/automerge-rust/hexane/src/pack.rs +325 -0
  283. data/vendor/automerge-rust/hexane/src/raw.rs +314 -0
  284. data/vendor/automerge-rust/hexane/src/rle.rs +928 -0
  285. data/vendor/automerge-rust/hexane/src/slab/tree.rs +1373 -0
  286. data/vendor/automerge-rust/hexane/src/slab/writer.rs +535 -0
  287. data/vendor/automerge-rust/hexane/src/slab.rs +224 -0
  288. data/vendor/automerge-rust/hexane/src/test.rs +108 -0
  289. data/vendor/bundle/ruby/3.3.0/bin/rake +29 -0
  290. data/vendor/bundle/ruby/3.3.0/bin/rake-compiler +29 -0
  291. data/vendor/bundle/ruby/3.3.0/bin/rake-compiler-dock +29 -0
  292. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/History.rdoc +1732 -0
  293. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/Manifest.txt +32 -0
  294. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/README.rdoc +845 -0
  295. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/Rakefile +97 -0
  296. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/design_rationale.rb +54 -0
  297. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/hoe/minitest.rb +30 -0
  298. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/assertions.rb +850 -0
  299. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/autorun.rb +6 -0
  300. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/benchmark.rb +452 -0
  301. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/compress.rb +94 -0
  302. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/error_on_warning.rb +11 -0
  303. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/expectations.rb +321 -0
  304. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/hell.rb +11 -0
  305. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/manual_plugins.rb +16 -0
  306. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/mock.rb +327 -0
  307. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/parallel.rb +72 -0
  308. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/pride.rb +4 -0
  309. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/pride_plugin.rb +135 -0
  310. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/spec.rb +353 -0
  311. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/test.rb +238 -0
  312. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/test_task.rb +324 -0
  313. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest/unit.rb +42 -0
  314. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/lib/minitest.rb +1250 -0
  315. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/metametameta.rb +150 -0
  316. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_assertions.rb +1677 -0
  317. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_benchmark.rb +137 -0
  318. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_mock.rb +1213 -0
  319. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_reporter.rb +437 -0
  320. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_spec.rb +1159 -0
  321. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_test.rb +1374 -0
  322. data/vendor/bundle/ruby/3.3.0/gems/minitest-5.27.0/test/minitest/test_minitest_test_task.rb +57 -0
  323. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/History.rdoc +2454 -0
  324. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/MIT-LICENSE +21 -0
  325. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/README.rdoc +155 -0
  326. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/command_line_usage.rdoc +171 -0
  327. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/Rakefile1 +38 -0
  328. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/Rakefile2 +35 -0
  329. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/a.c +6 -0
  330. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/b.c +6 -0
  331. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/example/main.c +11 -0
  332. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/glossary.rdoc +42 -0
  333. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/jamis.rb +592 -0
  334. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/proto_rake.rdoc +127 -0
  335. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/rake.1 +156 -0
  336. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/rakefile.rdoc +635 -0
  337. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/doc/rational.rdoc +151 -0
  338. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/exe/rake +27 -0
  339. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/application.rb +847 -0
  340. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/backtrace.rb +25 -0
  341. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/clean.rb +78 -0
  342. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/cloneable.rb +17 -0
  343. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/cpu_counter.rb +122 -0
  344. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/default_loader.rb +15 -0
  345. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/dsl_definition.rb +196 -0
  346. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/early_time.rb +22 -0
  347. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/ext/core.rb +26 -0
  348. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/ext/string.rb +176 -0
  349. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_creation_task.rb +25 -0
  350. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_list.rb +435 -0
  351. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_task.rb +58 -0
  352. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_utils.rb +137 -0
  353. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/file_utils_ext.rb +135 -0
  354. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/invocation_chain.rb +57 -0
  355. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/invocation_exception_mixin.rb +17 -0
  356. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/late_time.rb +18 -0
  357. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/linked_list.rb +112 -0
  358. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/loaders/makefile.rb +54 -0
  359. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/multi_task.rb +14 -0
  360. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/name_space.rb +38 -0
  361. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/options.rb +31 -0
  362. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/packagetask.rb +222 -0
  363. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/phony.rb +16 -0
  364. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/private_reader.rb +21 -0
  365. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/promise.rb +100 -0
  366. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/pseudo_status.rb +30 -0
  367. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/rake_module.rb +67 -0
  368. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/rake_test_loader.rb +27 -0
  369. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/rule_recursion_overflow_error.rb +20 -0
  370. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/scope.rb +43 -0
  371. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/task.rb +434 -0
  372. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/task_argument_error.rb +8 -0
  373. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/task_arguments.rb +113 -0
  374. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/task_manager.rb +333 -0
  375. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/tasklib.rb +12 -0
  376. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/testtask.rb +192 -0
  377. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/thread_history_display.rb +49 -0
  378. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/thread_pool.rb +157 -0
  379. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/trace_output.rb +23 -0
  380. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/version.rb +10 -0
  381. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake/win32.rb +17 -0
  382. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/lib/rake.rb +69 -0
  383. data/vendor/bundle/ruby/3.3.0/gems/rake-13.4.2/rake.gemspec +102 -0
  384. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/Gemfile +8 -0
  385. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/History.md +695 -0
  386. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/LICENSE.txt +20 -0
  387. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/README.md +476 -0
  388. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/Rakefile +15 -0
  389. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/appveyor.yml +22 -0
  390. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/bin/rake-compiler +24 -0
  391. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/cucumber.yml +4 -0
  392. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/compile.feature +79 -0
  393. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/cross-compile.feature +23 -0
  394. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/cross-package-multi.feature +15 -0
  395. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/cross-package.feature +14 -0
  396. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/java-compile.feature +22 -0
  397. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/java-no-native-compile.feature +33 -0
  398. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/java-package.feature +24 -0
  399. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/package.feature +40 -0
  400. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/compilation.rb +70 -0
  401. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/cross_compilation.rb +27 -0
  402. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/execution.rb +52 -0
  403. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/folders.rb +32 -0
  404. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/gem.rb +46 -0
  405. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/step_definitions/java_compilation.rb +7 -0
  406. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/support/env.rb +10 -0
  407. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/support/file_template_helpers.rb +137 -0
  408. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/support/generator_helpers.rb +123 -0
  409. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/features/support/platform_extension_helpers.rb +27 -0
  410. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/baseextensiontask.rb +90 -0
  411. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/compiler_config.rb +38 -0
  412. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/extensioncompiler.rb +51 -0
  413. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/extensiontask.rb +589 -0
  414. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/lib/rake/javaextensiontask.rb +321 -0
  415. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/bin/cross-ruby.rake +189 -0
  416. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/bootstrap.rake +11 -0
  417. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/common.rake +10 -0
  418. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/cucumber.rake +23 -0
  419. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/gem.rake +15 -0
  420. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-1.3.1/tasks/rspec.rake +9 -0
  421. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/CHANGELOG.md +446 -0
  422. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/CONTRIBUTING.md +109 -0
  423. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/Dockerfile.jruby +79 -0
  424. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/Dockerfile.mri.erb +282 -0
  425. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/Gemfile +8 -0
  426. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/LICENSE.txt +22 -0
  427. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/README.md +447 -0
  428. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/Rakefile +246 -0
  429. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/bin/rake-compiler-dock +18 -0
  430. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/buildkitd.toml +2 -0
  431. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/gem_helper.rb +54 -0
  432. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/mk_i686.rb +18 -0
  433. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/mk_musl_cross.sh +37 -0
  434. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/mk_osxcross.sh +45 -0
  435. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/mk_pkg_config.sh +24 -0
  436. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/parallel_docker_build.rb +169 -0
  437. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/patches/rake-compiler-1.3.1/0004-Enable-build-of-static-libruby.patch +38 -0
  438. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/patches/rake-compiler-1.3.1/0005-build-miniruby-first.patch +16 -0
  439. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/patches/rake-compiler-1.3.1/0006-ruby-4-rubyspec-capiext.patch +16 -0
  440. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/rcd-env.sh +6 -0
  441. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/runas +7 -0
  442. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/sigfw.c +45 -0
  443. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/strip_wrapper_codesign +17 -0
  444. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/strip_wrapper_vbox +30 -0
  445. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/build/sudoers +1 -0
  446. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/colors.rb +43 -0
  447. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/docker_check.rb +356 -0
  448. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/predefined_user_group.rb +5 -0
  449. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/starter.rb +206 -0
  450. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock/version.rb +4 -0
  451. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/lib/rake_compiler_dock.rb +151 -0
  452. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/Dockerfile +66 -0
  453. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/README.md +14 -0
  454. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/binutils-mingw-w64-ignore-check-errors.patch +13 -0
  455. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/gcc-mingw-w64-only-c-c++.patch +13 -0
  456. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/mingw64-ucrt/mingw-w64-enable-ucrt.patch +22 -0
  457. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/rake-compiler-dock.gemspec +34 -0
  458. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/env/Dockerfile.alpine +17 -0
  459. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/env/Dockerfile.debian +24 -0
  460. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/fixtures/mig_test_rpc.defs +8 -0
  461. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/Gemfile +11 -0
  462. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/Rakefile +97 -0
  463. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/java/RcdTestExtService.java +19 -0
  464. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/java/RubyRcdTest.java +16 -0
  465. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/mri/extconf.rb +111 -0
  466. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/mri/rcd_test_ext.c +65 -0
  467. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/ext/mri/rcd_test_ext.h +11 -0
  468. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/lib/rcd_test.rb +6 -0
  469. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/rcd_test.gemspec +28 -0
  470. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/rcd_test/test/test_basic.rb +49 -0
  471. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_environment_variables.rb +108 -0
  472. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_mig.rb +18 -0
  473. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_parallel_docker_build.rb +95 -0
  474. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_rubygems_plugins.rb +12 -0
  475. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_starter.rb +158 -0
  476. data/vendor/bundle/ruby/3.3.0/gems/rake-compiler-dock-1.12.0/test/test_versions.rb +82 -0
  477. data/vendor/bundle/ruby/3.3.0/specifications/minitest-5.27.0.gemspec +32 -0
  478. data/vendor/bundle/ruby/3.3.0/specifications/rake-13.4.2.gemspec +26 -0
  479. data/vendor/bundle/ruby/3.3.0/specifications/rake-compiler-1.3.1.gemspec +33 -0
  480. data/vendor/bundle/ruby/3.3.0/specifications/rake-compiler-dock-1.12.0.gemspec +28 -0
  481. metadata +584 -0
@@ -0,0 +1,556 @@
1
+ use automerge as am;
2
+ use automerge::transaction::Transactable;
3
+ use automerge::ReadDoc;
4
+
5
+ use crate::byte_span::{to_str, AMbyteSpan};
6
+ use crate::doc::{to_doc, to_doc_mut, AMdoc};
7
+ use crate::items::AMitems;
8
+ use crate::obj::{to_obj_id, to_obj_type, AMobjId, AMobjType};
9
+ use crate::result::{to_result, AMresult};
10
+
11
+ /// \memberof AMdoc
12
+ /// \brief Deletes an item from a map object.
13
+ ///
14
+ /// \param[in] doc A pointer to an `AMdoc` struct.
15
+ /// \param[in] obj_id A pointer to an `AMobjId` struct or `AM_ROOT`.
16
+ /// \param[in] key The UTF-8 string view key of an item within the map object
17
+ /// identified by \p obj_id as an `AMbyteSpan` struct.
18
+ /// \return A pointer to an `AMresult` struct with an `AM_VAL_TYPE_VOID` item.
19
+ /// \pre \p doc `!= NULL`
20
+ /// \pre \p key.src `!= NULL`
21
+ /// \warning The returned `AMresult` struct pointer must be passed to
22
+ /// `AMresultFree()` in order to avoid a memory leak.
23
+ /// \internal
24
+ ///
25
+ /// # Safety
26
+ /// doc must be a valid pointer to an AMdoc
27
+ /// obj_id must be a valid pointer to an AMobjId or std::ptr::null()
28
+ /// key.src must be a byte array of length >= key.count
29
+ #[no_mangle]
30
+ pub unsafe extern "C" fn AMmapDelete(
31
+ doc: *mut AMdoc,
32
+ obj_id: *const AMobjId,
33
+ key: AMbyteSpan,
34
+ ) -> *mut AMresult {
35
+ let doc = to_doc_mut!(doc);
36
+ let key = to_str!(key);
37
+ to_result(doc.delete(to_obj_id!(obj_id), key))
38
+ }
39
+
40
+ /// \memberof AMdoc
41
+ /// \brief Gets a current or historical item within a map object.
42
+ ///
43
+ /// \param[in] doc A pointer to an `AMdoc` struct.
44
+ /// \param[in] obj_id A pointer to an `AMobjId` struct or `AM_ROOT`.
45
+ /// \param[in] key The UTF-8 string view key of an item within the map object
46
+ /// identified by \p obj_id as an `AMbyteSpan` struct.
47
+ /// \param[in] heads A pointer to an `AMitems` struct with `AM_VAL_TYPE_CHANGE_HASH`
48
+ /// items to select a historical item at \p key or `NULL`
49
+ /// to select the current item at \p key.
50
+ /// \return A pointer to an `AMresult` struct with an `AMitem` struct.
51
+ /// \pre \p doc `!= NULL`
52
+ /// \pre \p key.src `!= NULL`
53
+ /// \warning The returned `AMresult` struct pointer must be passed to
54
+ /// `AMresultFree()` in order to avoid a memory leak.
55
+ /// \internal
56
+ ///
57
+ /// # Safety
58
+ /// doc must be a valid pointer to an AMdoc
59
+ /// obj_id must be a valid pointer to an AMobjId or std::ptr::null()
60
+ /// key.src must be a byte array of length >= key.count
61
+ /// heads must be a valid pointer to an AMitems or std::ptr::null()
62
+ #[no_mangle]
63
+ pub unsafe extern "C" fn AMmapGet(
64
+ doc: *const AMdoc,
65
+ obj_id: *const AMobjId,
66
+ key: AMbyteSpan,
67
+ heads: *const AMitems,
68
+ ) -> *mut AMresult {
69
+ let doc = to_doc!(doc);
70
+ let obj_id = to_obj_id!(obj_id);
71
+ let key = to_str!(key);
72
+ match heads.as_ref() {
73
+ None => to_result((doc.get(obj_id, key), key)),
74
+ Some(heads) => match <Vec<am::ChangeHash>>::try_from(heads) {
75
+ Ok(heads) => to_result((doc.get_at(obj_id, key, &heads), key)),
76
+ Err(e) => AMresult::error(&e.to_string()).into(),
77
+ },
78
+ }
79
+ }
80
+
81
+ /// \memberof AMdoc
82
+ /// \brief Gets all of the historical items at a key within a map object until
83
+ /// its current one or a specific one.
84
+ ///
85
+ /// \param[in] doc A pointer to an `AMdoc` struct.
86
+ /// \param[in] obj_id A pointer to an `AMobjId` struct or `AM_ROOT`.
87
+ /// \param[in] key The UTF-8 string view key of an item within the map object
88
+ /// identified by \p obj_id as an `AMbyteSpan` struct.
89
+ /// \param[in] heads A pointer to an `AMitems` struct with `AM_VAL_TYPE_CHANGE_HASH`
90
+ /// items to select a historical last item or `NULL` to
91
+ /// select the current last item.
92
+ /// \return A pointer to an `AMresult` struct with an `AMItems` struct.
93
+ /// \pre \p doc `!= NULL`
94
+ /// \pre \p key.src `!= NULL`
95
+ /// \warning The returned `AMresult` struct pointer must be passed to
96
+ /// `AMresultFree()` in order to avoid a memory leak.
97
+ /// \internal
98
+ ///
99
+ /// # Safety
100
+ /// doc must be a valid pointer to an AMdoc
101
+ /// obj_id must be a valid pointer to an AMobjId or std::ptr::null()
102
+ /// key.src must be a byte array of length >= key.count
103
+ /// heads must be a valid pointer to an AMitems or std::ptr::null()
104
+ #[no_mangle]
105
+ pub unsafe extern "C" fn AMmapGetAll(
106
+ doc: *const AMdoc,
107
+ obj_id: *const AMobjId,
108
+ key: AMbyteSpan,
109
+ heads: *const AMitems,
110
+ ) -> *mut AMresult {
111
+ let doc = to_doc!(doc);
112
+ let obj_id = to_obj_id!(obj_id);
113
+ let key = to_str!(key);
114
+ match heads.as_ref() {
115
+ None => to_result(doc.get_all(obj_id, key)),
116
+ Some(heads) => match <Vec<am::ChangeHash>>::try_from(heads) {
117
+ Ok(heads) => to_result(doc.get_all_at(obj_id, key, &heads)),
118
+ Err(e) => AMresult::error(&e.to_string()).into(),
119
+ },
120
+ }
121
+ }
122
+
123
+ /// \memberof AMdoc
124
+ /// \brief Increments a counter at a key in a map object by the given value.
125
+ ///
126
+ /// \param[in] doc A pointer to an `AMdoc` struct.
127
+ /// \param[in] obj_id A pointer to an `AMobjId` struct or `AM_ROOT`.
128
+ /// \param[in] key The UTF-8 string view key of an item within the map object
129
+ /// identified by \p obj_id as an `AMbyteSpan` struct.
130
+ /// \param[in] value A 64-bit signed integer.
131
+ /// \return A pointer to an `AMresult` struct with an `AM_VAL_TYPE_VOID` item.
132
+ /// \pre \p doc `!= NULL`
133
+ /// \pre \p key.src `!= NULL`
134
+ /// \warning The returned `AMresult` struct pointer must be passed to
135
+ /// `AMresultFree()` in order to avoid a memory leak.
136
+ /// \internal
137
+ ///
138
+ /// # Safety
139
+ /// doc must be a valid pointer to an AMdoc
140
+ /// obj_id must be a valid pointer to an AMobjId or std::ptr::null()
141
+ /// key.src must be a byte array of length >= key.count
142
+ #[no_mangle]
143
+ pub unsafe extern "C" fn AMmapIncrement(
144
+ doc: *mut AMdoc,
145
+ obj_id: *const AMobjId,
146
+ key: AMbyteSpan,
147
+ value: i64,
148
+ ) -> *mut AMresult {
149
+ let doc = to_doc_mut!(doc);
150
+ let key = to_str!(key);
151
+ to_result(doc.increment(to_obj_id!(obj_id), key, value))
152
+ }
153
+
154
+ /// \memberof AMdoc
155
+ /// \brief Puts a boolean as the value of a key in a map object.
156
+ ///
157
+ /// \param[in] doc A pointer to an `AMdoc` struct.
158
+ /// \param[in] obj_id A pointer to an `AMobjId` struct or `AM_ROOT`.
159
+ /// \param[in] key The UTF-8 string view key of an item within the map object
160
+ /// identified by \p obj_id as an `AMbyteSpan` struct.
161
+ /// \param[in] value A boolean.
162
+ /// \return A pointer to an `AMresult` struct with an `AM_VAL_TYPE_VOID` item.
163
+ /// \pre \p doc `!= NULL`
164
+ /// \pre \p key.src `!= NULL`
165
+ /// \warning The returned `AMresult` struct pointer must be passed to
166
+ /// `AMresultFree()` in order to avoid a memory leak.
167
+ /// \internal
168
+ ///
169
+ /// # Safety
170
+ /// doc must be a valid pointer to an AMdoc
171
+ /// obj_id must be a valid pointer to an AMobjId or std::ptr::null()
172
+ /// key.src must be a byte array of length >= key.count
173
+ #[no_mangle]
174
+ pub unsafe extern "C" fn AMmapPutBool(
175
+ doc: *mut AMdoc,
176
+ obj_id: *const AMobjId,
177
+ key: AMbyteSpan,
178
+ value: bool,
179
+ ) -> *mut AMresult {
180
+ let doc = to_doc_mut!(doc);
181
+ let key = to_str!(key);
182
+ to_result(doc.put(to_obj_id!(obj_id), key, value))
183
+ }
184
+
185
+ /// \memberof AMdoc
186
+ /// \brief Puts an array of bytes value at a key in a map object.
187
+ ///
188
+ /// \param[in] doc A pointer to an `AMdoc` struct.
189
+ /// \param[in] obj_id A pointer to an `AMobjId` struct or `AM_ROOT`.
190
+ /// \param[in] key The UTF-8 string view key of an item within the map object
191
+ /// identified by \p obj_id as an `AMbyteSpan` struct.
192
+ /// \param[in] value A view onto an array of bytes as an `AMbyteSpan` struct.
193
+ /// \return A pointer to an `AMresult` struct with an `AM_VAL_TYPE_VOID` item.
194
+ /// \pre \p doc `!= NULL`
195
+ /// \pre \p key.src `!= NULL`
196
+ /// \pre \p value.src `!= NULL`
197
+ /// \pre `0 <` \p value.count `<= sizeof(`\p value.src `)`
198
+ /// \warning The returned `AMresult` struct pointer must be passed to
199
+ /// `AMresultFree()` in order to avoid a memory leak.
200
+ /// \internal
201
+ ///
202
+ /// # Safety
203
+ /// doc must be a valid pointer to an AMdoc
204
+ /// obj_id must be a valid pointer to an AMobjId or std::ptr::null()
205
+ /// key.src must be a byte array of length >= key.count
206
+ /// value.src must be a byte array of length >= value.count
207
+ #[no_mangle]
208
+ pub unsafe extern "C" fn AMmapPutBytes(
209
+ doc: *mut AMdoc,
210
+ obj_id: *const AMobjId,
211
+ key: AMbyteSpan,
212
+ value: AMbyteSpan,
213
+ ) -> *mut AMresult {
214
+ let doc = to_doc_mut!(doc);
215
+ let key = to_str!(key);
216
+ to_result(doc.put(to_obj_id!(obj_id), key, Vec::<u8>::from(&value)))
217
+ }
218
+
219
+ /// \memberof AMdoc
220
+ /// \brief Puts a CRDT counter as the value of a key in a map object.
221
+ ///
222
+ /// \param[in] doc A pointer to an `AMdoc` struct.
223
+ /// \param[in] obj_id A pointer to an `AMobjId` struct or `AM_ROOT`.
224
+ /// \param[in] key A UTF-8 string view key for the map object identified by
225
+ /// \p obj_id as an `AMbyteSpan` struct.
226
+ /// \param[in] value A 64-bit signed integer.
227
+ /// \return A pointer to an `AMresult` struct with an `AM_VAL_TYPE_VOID` item.
228
+ /// \pre \p doc `!= NULL`
229
+ /// \pre \p key.src `!= NULL`
230
+ /// \warning The returned `AMresult` struct pointer must be passed to
231
+ /// `AMresultFree()` in order to avoid a memory leak.
232
+ /// \internal
233
+ ///
234
+ /// # Safety
235
+ /// doc must be a valid pointer to an AMdoc
236
+ /// obj_id must be a valid pointer to an AMobjId or std::ptr::null()
237
+ /// key.src must be a byte array of length >= key.count
238
+ #[no_mangle]
239
+ pub unsafe extern "C" fn AMmapPutCounter(
240
+ doc: *mut AMdoc,
241
+ obj_id: *const AMobjId,
242
+ key: AMbyteSpan,
243
+ value: i64,
244
+ ) -> *mut AMresult {
245
+ let doc = to_doc_mut!(doc);
246
+ let key = to_str!(key);
247
+ to_result(doc.put(
248
+ to_obj_id!(obj_id),
249
+ key,
250
+ am::ScalarValue::Counter(value.into()),
251
+ ))
252
+ }
253
+
254
+ /// \memberof AMdoc
255
+ /// \brief Puts null as the value of a key in a map object.
256
+ ///
257
+ /// \param[in] doc A pointer to an `AMdoc` struct.
258
+ /// \param[in] obj_id A pointer to an `AMobjId` struct or `AM_ROOT`.
259
+ /// \param[in] key A UTF-8 string view key for the map object identified by
260
+ /// \p obj_id as an `AMbyteSpan` struct.
261
+ /// \return A pointer to an `AMresult` struct with an `AM_VAL_TYPE_VOID` item.
262
+ /// \pre \p doc `!= NULL`
263
+ /// \pre \p key.src `!= NULL`
264
+ /// \warning The returned `AMresult` struct pointer must be passed to
265
+ /// `AMresultFree()` in order to avoid a memory leak.
266
+ /// \internal
267
+ ///
268
+ /// # Safety
269
+ /// doc must be a valid pointer to an AMdoc
270
+ /// obj_id must be a valid pointer to an AMobjId or std::ptr::null()
271
+ /// key.src must be a byte array of length >= key.count
272
+ #[no_mangle]
273
+ pub unsafe extern "C" fn AMmapPutNull(
274
+ doc: *mut AMdoc,
275
+ obj_id: *const AMobjId,
276
+ key: AMbyteSpan,
277
+ ) -> *mut AMresult {
278
+ let doc = to_doc_mut!(doc);
279
+ let key = to_str!(key);
280
+ to_result(doc.put(to_obj_id!(obj_id), key, ()))
281
+ }
282
+
283
+ /// \memberof AMdoc
284
+ /// \brief Puts an empty object as the value of a key in a map object.
285
+ ///
286
+ /// \param[in] doc A pointer to an `AMdoc` struct.
287
+ /// \param[in] obj_id A pointer to an `AMobjId` struct or `AM_ROOT`.
288
+ /// \param[in] key A UTF-8 string view key for the map object identified by
289
+ /// \p obj_id as an `AMbyteSpan` struct.
290
+ /// \param[in] obj_type An `AMobjIdType` enum tag.
291
+ /// \return A pointer to an `AMresult` struct with an `AM_VAL_TYPE_OBJ_TYPE` item.
292
+ /// \pre \p doc `!= NULL`
293
+ /// \pre \p key.src `!= NULL`
294
+ /// \warning The returned `AMresult` struct pointer must be passed to
295
+ /// `AMresultFree()` in order to avoid a memory leak.
296
+ /// \internal
297
+ ///
298
+ /// # Safety
299
+ /// doc must be a valid pointer to an AMdoc
300
+ /// obj_id must be a valid pointer to an AMobjId or std::ptr::null()
301
+ /// key.src must be a byte array of length >= key.count
302
+ #[no_mangle]
303
+ pub unsafe extern "C" fn AMmapPutObject(
304
+ doc: *mut AMdoc,
305
+ obj_id: *const AMobjId,
306
+ key: AMbyteSpan,
307
+ obj_type: AMobjType,
308
+ ) -> *mut AMresult {
309
+ let doc = to_doc_mut!(doc);
310
+ let key = to_str!(key);
311
+ let obj_type = to_obj_type!(obj_type);
312
+ to_result((
313
+ doc.put_object(to_obj_id!(obj_id), key, obj_type),
314
+ key,
315
+ obj_type,
316
+ ))
317
+ }
318
+
319
+ /// \memberof AMdoc
320
+ /// \brief Puts a float as the value of a key in a map object.
321
+ ///
322
+ /// \param[in] doc A pointer to an `AMdoc` struct.
323
+ /// \param[in] obj_id A pointer to an `AMobjId` struct or `AM_ROOT`.
324
+ /// \param[in] key A UTF-8 string view key for the map object identified by
325
+ /// \p obj_id as an `AMbyteSpan` struct.
326
+ /// \param[in] value A 64-bit float.
327
+ /// \return A pointer to an `AMresult` struct with an `AM_VAL_TYPE_VOID` item.
328
+ /// \pre \p doc `!= NULL`
329
+ /// \pre \p key.src `!= NULL`
330
+ /// \warning The returned `AMresult` struct pointer must be passed to
331
+ /// `AMresultFree()` in order to avoid a memory leak.
332
+ /// \internal
333
+ ///
334
+ /// # Safety
335
+ /// doc must be a valid pointer to an AMdoc
336
+ /// obj_id must be a valid pointer to an AMobjId or std::ptr::null()
337
+ /// key.src must be a byte array of length >= key.count
338
+ #[no_mangle]
339
+ pub unsafe extern "C" fn AMmapPutF64(
340
+ doc: *mut AMdoc,
341
+ obj_id: *const AMobjId,
342
+ key: AMbyteSpan,
343
+ value: f64,
344
+ ) -> *mut AMresult {
345
+ let doc = to_doc_mut!(doc);
346
+ let key = to_str!(key);
347
+ to_result(doc.put(to_obj_id!(obj_id), key, value))
348
+ }
349
+
350
+ /// \memberof AMdoc
351
+ /// \brief Puts a signed integer as the value of a key in a map object.
352
+ ///
353
+ /// \param[in] doc A pointer to an `AMdoc` struct.
354
+ /// \param[in] obj_id A pointer to an `AMobjId` struct or `AM_ROOT`.
355
+ /// \param[in] key A UTF-8 string view key for the map object identified by
356
+ /// \p obj_id as an `AMbyteSpan` struct.
357
+ /// \param[in] value A 64-bit signed integer.
358
+ /// \return A pointer to an `AMresult` struct with an `AM_VAL_TYPE_VOID` item.
359
+ /// \pre \p doc `!= NULL`
360
+ /// \pre \p key.src `!= NULL`
361
+ /// \warning The returned `AMresult` struct pointer must be passed to
362
+ /// `AMresultFree()` in order to avoid a memory leak.
363
+ /// \internal
364
+ ///
365
+ /// # Safety
366
+ /// doc must be a valid pointer to an AMdoc
367
+ /// obj_id must be a valid pointer to an AMobjId or std::ptr::null()
368
+ /// key.src must be a byte array of length >= key.count
369
+ #[no_mangle]
370
+ pub unsafe extern "C" fn AMmapPutInt(
371
+ doc: *mut AMdoc,
372
+ obj_id: *const AMobjId,
373
+ key: AMbyteSpan,
374
+ value: i64,
375
+ ) -> *mut AMresult {
376
+ let doc = to_doc_mut!(doc);
377
+ let key = to_str!(key);
378
+ to_result(doc.put(to_obj_id!(obj_id), key, value))
379
+ }
380
+
381
+ /// \memberof AMdoc
382
+ /// \brief Puts a UTF-8 string as the value of a key in a map object.
383
+ ///
384
+ /// \param[in] doc A pointer to an `AMdoc` struct.
385
+ /// \param[in] obj_id A pointer to an `AMobjId` struct or `AM_ROOT`.
386
+ /// \param[in] key A UTF-8 string view key for the map object identified by
387
+ /// \p obj_id as an `AMbyteSpan` struct.
388
+ /// \param[in] value A UTF-8 string view as an `AMbyteSpan` struct.
389
+ /// \return A pointer to an `AMresult` struct with an `AM_VAL_TYPE_VOID` item.
390
+ /// \pre \p doc `!= NULL`
391
+ /// \pre \p key.src `!= NULL`
392
+ /// \warning The returned `AMresult` struct pointer must be passed to
393
+ /// `AMresultFree()` in order to avoid a memory leak.
394
+ /// \internal
395
+ ///
396
+ /// # Safety
397
+ /// doc must be a valid pointer to an AMdoc
398
+ /// obj_id must be a valid pointer to an AMobjId or std::ptr::null()
399
+ /// key.src must be a byte array of length >= key.count
400
+ #[no_mangle]
401
+ pub unsafe extern "C" fn AMmapPutStr(
402
+ doc: *mut AMdoc,
403
+ obj_id: *const AMobjId,
404
+ key: AMbyteSpan,
405
+ value: AMbyteSpan,
406
+ ) -> *mut AMresult {
407
+ let doc = to_doc_mut!(doc);
408
+ to_result(doc.put(to_obj_id!(obj_id), to_str!(key), to_str!(value)))
409
+ }
410
+
411
+ /// \memberof AMdoc
412
+ /// \brief Puts a *nix timestamp (milliseconds) as the value of a key in a map
413
+ /// object.
414
+ ///
415
+ /// \param[in] doc A pointer to an `AMdoc` struct.
416
+ /// \param[in] obj_id A pointer to an `AMobjId` struct or `AM_ROOT`.
417
+ /// \param[in] key A UTF-8 string view key for the map object identified by
418
+ /// \p obj_id as an `AMbyteSpan` struct.
419
+ /// \param[in] value A 64-bit signed integer.
420
+ /// \return A pointer to an `AMresult` struct with an `AM_VAL_TYPE_VOID` item.
421
+ /// \pre \p doc `!= NULL`
422
+ /// \pre \p key.src `!= NULL`
423
+ /// \warning The returned `AMresult` struct pointer must be passed to
424
+ /// `AMresultFree()` in order to avoid a memory leak.
425
+ /// \internal
426
+ ///
427
+ /// # Safety
428
+ /// doc must be a valid pointer to an AMdoc
429
+ /// obj_id must be a valid pointer to an AMobjId or std::ptr::null()
430
+ /// key.src must be a byte array of length >= key.count
431
+ #[no_mangle]
432
+ pub unsafe extern "C" fn AMmapPutTimestamp(
433
+ doc: *mut AMdoc,
434
+ obj_id: *const AMobjId,
435
+ key: AMbyteSpan,
436
+ value: i64,
437
+ ) -> *mut AMresult {
438
+ let doc = to_doc_mut!(doc);
439
+ let key = to_str!(key);
440
+ to_result(doc.put(to_obj_id!(obj_id), key, am::ScalarValue::Timestamp(value)))
441
+ }
442
+
443
+ /// \memberof AMdoc
444
+ /// \brief Puts an unsigned integer as the value of a key in a map object.
445
+ ///
446
+ /// \param[in] doc A pointer to an `AMdoc` struct.
447
+ /// \param[in] obj_id A pointer to an `AMobjId` struct or `AM_ROOT`.
448
+ /// \param[in] key A UTF-8 string view key for the map object identified by
449
+ /// \p obj_id as an `AMbyteSpan` struct.
450
+ /// \param[in] value A 64-bit unsigned integer.
451
+ /// \return A pointer to an `AMresult` struct with an `AM_VAL_TYPE_VOID` item.
452
+ /// \pre \p doc `!= NULL`
453
+ /// \pre \p key.src `!= NULL`
454
+ /// \warning The returned `AMresult` struct pointer must be passed to
455
+ /// `AMresultFree()` in order to avoid a memory leak.
456
+ /// \internal
457
+ ///
458
+ /// # Safety
459
+ /// doc must be a valid pointer to an AMdoc
460
+ /// obj_id must be a valid pointer to an AMobjId or std::ptr::null()
461
+ /// key.src must be a byte array of length >= key.count
462
+ #[no_mangle]
463
+ pub unsafe extern "C" fn AMmapPutUint(
464
+ doc: *mut AMdoc,
465
+ obj_id: *const AMobjId,
466
+ key: AMbyteSpan,
467
+ value: u64,
468
+ ) -> *mut AMresult {
469
+ let doc = to_doc_mut!(doc);
470
+ let key = to_str!(key);
471
+ to_result(doc.put(to_obj_id!(obj_id), key, value))
472
+ }
473
+
474
+ /// \memberof AMdoc
475
+ /// \brief Gets the current or historical items of the map object within the
476
+ /// given range.
477
+ ///
478
+ /// \param[in] doc A pointer to an `AMdoc` struct.
479
+ /// \param[in] obj_id A pointer to an `AMobjId` struct or `AM_ROOT`.
480
+ /// \param[in] begin The first key in a subrange or `AMstr(NULL)` to indicate the
481
+ /// absolute first key.
482
+ /// \param[in] end The key one past the last key in a subrange or `AMstr(NULL)`
483
+ /// to indicate one past the absolute last key.
484
+ /// \param[in] heads A pointer to an `AMitems` struct with `AM_VAL_TYPE_CHANGE_HASH`
485
+ /// items to select historical items or `NULL` to select
486
+ /// current items.
487
+ /// \return A pointer to an `AMresult` struct with an `AMitems` struct.
488
+ /// \pre \p doc `!= NULL`
489
+ /// \warning The returned `AMresult` struct pointer must be passed to
490
+ /// `AMresultFree()` in order to avoid a memory leak.
491
+ /// \internal
492
+ ///
493
+ /// # Safety
494
+ /// doc must be a valid pointer to an AMdoc
495
+ /// obj_id must be a valid pointer to an AMobjId or std::ptr::null()
496
+ /// begin.src must be a byte array of length >= begin.count or std::ptr::null()
497
+ /// end.src must be a byte array of length >= end.count or std::ptr::null()
498
+ /// heads must be a valid pointer to an AMitems or std::ptr::null()
499
+ #[no_mangle]
500
+ pub unsafe extern "C" fn AMmapRange(
501
+ doc: *const AMdoc,
502
+ obj_id: *const AMobjId,
503
+ begin: AMbyteSpan,
504
+ end: AMbyteSpan,
505
+ heads: *const AMitems,
506
+ ) -> *mut AMresult {
507
+ let doc = to_doc!(doc);
508
+ let obj_id = to_obj_id!(obj_id);
509
+ let heads = match heads.as_ref() {
510
+ None => None,
511
+ Some(heads) => match <Vec<am::ChangeHash>>::try_from(heads) {
512
+ Ok(heads) => Some(heads),
513
+ Err(e) => {
514
+ return AMresult::error(&e.to_string()).into();
515
+ }
516
+ },
517
+ };
518
+ match (begin.is_null(), end.is_null()) {
519
+ (false, false) => {
520
+ let (begin, end) = (to_str!(begin).to_string(), to_str!(end).to_string());
521
+ if begin > end {
522
+ return AMresult::error(&format!("Invalid range [{}-{})", begin, end)).into();
523
+ };
524
+ let bounds = begin..end;
525
+ if let Some(heads) = heads {
526
+ to_result(doc.map_range_at(obj_id, bounds, &heads))
527
+ } else {
528
+ to_result(doc.map_range(obj_id, bounds))
529
+ }
530
+ }
531
+ (false, true) => {
532
+ let bounds = to_str!(begin).to_string()..;
533
+ if let Some(heads) = heads {
534
+ to_result(doc.map_range_at(obj_id, bounds, &heads))
535
+ } else {
536
+ to_result(doc.map_range(obj_id, bounds))
537
+ }
538
+ }
539
+ (true, false) => {
540
+ let bounds = ..to_str!(end).to_string();
541
+ if let Some(heads) = heads {
542
+ to_result(doc.map_range_at(obj_id, bounds, &heads))
543
+ } else {
544
+ to_result(doc.map_range(obj_id, bounds))
545
+ }
546
+ }
547
+ (true, true) => {
548
+ let bounds = ..;
549
+ if let Some(heads) = heads {
550
+ to_result(doc.map_range_at(obj_id, bounds, &heads))
551
+ } else {
552
+ to_result(doc.map_range(obj_id, bounds))
553
+ }
554
+ }
555
+ }
556
+ }