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,21 @@
1
+ extern crate cbindgen;
2
+
3
+ use std::{env, path::PathBuf};
4
+
5
+ fn main() {
6
+ let crate_dir = PathBuf::from(
7
+ env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR env var is not defined"),
8
+ );
9
+
10
+ let config = cbindgen::Config::from_file("cbindgen.toml")
11
+ .expect("Unable to find cbindgen.toml configuration file");
12
+
13
+ if let Ok(writer) = cbindgen::generate_with_config(crate_dir, config) {
14
+ // \note CMake sets this environment variable before invoking Cargo so
15
+ // that it can direct the generated header file into its
16
+ // out-of-source build directory for post-processing.
17
+ if let Ok(target_dir) = env::var("CBINDGEN_TARGET_DIR") {
18
+ writer.write_to_file(PathBuf::from(target_dir).join("automerge.h"));
19
+ }
20
+ }
21
+ }
@@ -0,0 +1,48 @@
1
+ after_includes = """\n
2
+ /**
3
+ * \\defgroup enumerations Public Enumerations
4
+ * Symbolic names for integer constants.
5
+ */
6
+
7
+ /**
8
+ * \\memberof AMdoc
9
+ * \\def AM_ROOT
10
+ * \\brief The root object of a document.
11
+ */
12
+ #define AM_ROOT NULL
13
+
14
+ /**
15
+ * \\memberof AMdoc
16
+ * \\def AM_CHANGE_HASH_SIZE
17
+ * \\brief The count of bytes in a change hash.
18
+ */
19
+ #define AM_CHANGE_HASH_SIZE 32
20
+ """
21
+ autogen_warning = """
22
+ /**
23
+ * \\file
24
+ * \\brief All constants, functions and types in the core Automerge C API.
25
+ *
26
+ * \\warning This file is auto-generated by cbindgen.
27
+ */
28
+ """
29
+ documentation = true
30
+ documentation_style = "doxy"
31
+ include_guard = "AUTOMERGE_C_H"
32
+ includes = []
33
+ language = "C"
34
+ line_length = 140
35
+ no_includes = true
36
+ style = "both"
37
+ sys_includes = ["stdbool.h", "stddef.h", "stdint.h", "time.h"]
38
+ usize_is_size_t = true
39
+
40
+ [enum]
41
+ derive_const_casts = true
42
+ enum_class = true
43
+ must_use = "MUST_USE_ENUM"
44
+ prefix_with_name = true
45
+ rename_variants = "ScreamingSnakeCase"
46
+
47
+ [export]
48
+ item_types = ["constants", "enums", "functions", "opaque", "structs", "typedefs"]
@@ -0,0 +1,22 @@
1
+ [package]
2
+ name = "${PROJECT_NAME}"
3
+ version = "${PROJECT_VERSION}"
4
+ authors = ["Orion Henry <orion.henry@gmail.com>", "Jason Kankiewicz <jason.kankiewicz@gmail.com>"]
5
+ edition = "2021"
6
+ license = "MIT"
7
+ rust-version = "1.73.0"
8
+
9
+ [lib]
10
+ name = "${BINDINGS_NAME}"
11
+ crate-type = ["staticlib"]
12
+ bench = false
13
+ doc = false
14
+
15
+ [dependencies]
16
+ ${LIBRARY_NAME} = { path = "../${LIBRARY_NAME}" }
17
+ hex = "^0.4.3"
18
+ libc = "^0.2"
19
+ smol_str = "0.3"
20
+
21
+ [build-dependencies]
22
+ cbindgen = "^0.29"
@@ -0,0 +1,99 @@
1
+ @PACKAGE_INIT@
2
+
3
+ include(CMakeFindDependencyMacro)
4
+
5
+ set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
6
+
7
+ set(THREADS_PREFER_PTHREAD_FLAG TRUE)
8
+
9
+ find_dependency(Threads)
10
+
11
+ find_library(@SYMBOL_PREFIX@_IMPLIB_DEBUG @LIBRARY_NAME@${CMAKE_DEBUG_POSTFIX} PATHS "${PACKAGE_PREFIX_DIR}/debug/${CMAKE_INSTALL_LIBDIR}" "${PACKAGE_PREFIX_DIR}/${CMAKE_INSTALL_LIBDIR}" NO_DEFAULT_PATH)
12
+
13
+ find_library(@SYMBOL_PREFIX@_IMPLIB_RELEASE @LIBRARY_NAME@${CMAKE_RELEASE_POSTFIX} PATHS "${PACKAGE_PREFIX_DIR}/${CMAKE_INSTALL_LIBDIR}" NO_DEFAULT_PATH)
14
+
15
+ find_file(@SYMBOL_PREFIX@_LOCATION_DEBUG "${CMAKE_SHARED_LIBRARY_PREFIX}@LIBRARY_NAME@${CMAKE_DEBUG_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX}" PATHS "${PACKAGE_PREFIX_DIR}/debug/${CMAKE_INSTALL_BINDIR}" "${PACKAGE_PREFIX_DIR}/${CMAKE_INSTALL_LIBDIR}" NO_DEFAULT_PATH)
16
+
17
+ find_file(@SYMBOL_PREFIX@_LOCATION_RELEASE "${CMAKE_SHARED_LIBRARY_PREFIX}@LIBRARY_NAME@${CMAKE_RELEASE_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX}" PATHS "${PACKAGE_PREFIX_DIR}/${CMAKE_INSTALL_BINDIR}" NO_DEFAULT_PATH)
18
+
19
+ if(@BUILD_SHARED_LIBS@)
20
+ set(@SYMBOL_PREFIX@_DEFINE_SYMBOL "@SYMBOL_PREFIX@_EXPORTS")
21
+
22
+ if(WIN32)
23
+ set(@SYMBOL_PREFIX@_NO_SONAME_DEBUG "TRUE")
24
+
25
+ set(@SYMBOL_PREFIX@_NO_SONAME_RELEASE "TRUE")
26
+
27
+ set(@SYMBOL_PREFIX@_SONAME_DEBUG "")
28
+
29
+ set(@SYMBOL_PREFIX@_SONAME_RELEASE "")
30
+ else()
31
+ set(@SYMBOL_PREFIX@_NO_SONAME_DEBUG "FALSE")
32
+
33
+ set(@SYMBOL_PREFIX@_NO_SONAME_RELEASE "FALSE")
34
+
35
+ get_filename_component(@SYMBOL_PREFIX@_SONAME_DEBUG "${@SYMBOL_PREFIX@_LOCATION_DEBUG}" NAME)
36
+
37
+ get_filename_component(@SYMBOL_PREFIX@_SONAME_RELEASE "${@SYMBOL_PREFIX@_LOCATION_RELEASE}" NAME)
38
+ endif()
39
+
40
+ set(@SYMBOL_PREFIX@_TYPE "SHARED")
41
+ else()
42
+ set(@SYMBOL_PREFIX@_DEFINE_SYMBOL "")
43
+
44
+ set(@SYMBOL_PREFIX@_LOCATION_DEBUG "${@SYMBOL_PREFIX@_IMPLIB_DEBUG}")
45
+
46
+ set(@SYMBOL_PREFIX@_IMPLIB_DEBUG "")
47
+
48
+ set(@SYMBOL_PREFIX@_LOCATION_RELEASE "${@SYMBOL_PREFIX@_IMPLIB_RELEASE}")
49
+
50
+ set(@SYMBOL_PREFIX@_IMPLIB_RELEASE "")
51
+
52
+ set(@SYMBOL_PREFIX@_NO_SONAME_DEBUG "TRUE")
53
+
54
+ set(@SYMBOL_PREFIX@_NO_SONAME_RELEASE "TRUE")
55
+
56
+ set(@SYMBOL_PREFIX@_SONAME_DEBUG "")
57
+
58
+ set(@SYMBOL_PREFIX@_SONAME_RELEASE "")
59
+
60
+ set(@SYMBOL_PREFIX@_TYPE "STATIC")
61
+ endif()
62
+
63
+ add_library(@NAMESPACE@@PROJECT_NAME@ ${@SYMBOL_PREFIX@_TYPE} IMPORTED)
64
+
65
+ set_target_properties(
66
+ @NAMESPACE@@PROJECT_NAME@
67
+ PROPERTIES
68
+ # \note Cargo writes a debug build into a nested directory instead of
69
+ # decorating its name.
70
+ DEBUG_POSTFIX ""
71
+ DEFINE_SYMBOL "${@SYMBOL_PREFIX@_DEFINE_SYMBOL}"
72
+ IMPORTED_CONFIGURATIONS "RELEASE;DEBUG"
73
+ IMPORTED_IMPLIB_DEBUG "${@SYMBOL_PREFIX@_IMPLIB_DEBUG}"
74
+ IMPORTED_IMPLIB_RELEASE "${@SYMBOL_PREFIX@_IMPLIB_RELEASE}"
75
+ IMPORTED_LOCATION_DEBUG "${@SYMBOL_PREFIX@_LOCATION_DEBUG}"
76
+ IMPORTED_LOCATION_RELEASE "${@SYMBOL_PREFIX@_LOCATION_RELEASE}"
77
+ IMPORTED_NO_SONAME_DEBUG "${@SYMBOL_PREFIX@_NO_SONAME_DEBUG}"
78
+ IMPORTED_NO_SONAME_RELEASE "${@SYMBOL_PREFIX@_NO_SONAME_RELEASE}"
79
+ IMPORTED_SONAME_DEBUG "${@SYMBOL_PREFIX@_SONAME_DEBUG}"
80
+ IMPORTED_SONAME_RELEASE "${@SYMBOL_PREFIX@_SONAME_RELEASE}"
81
+ INTERFACE_INCLUDE_DIRECTORIES "${PACKAGE_PREFIX_DIR}/${CMAKE_INSTALL_INCLUDEDIR}"
82
+ LINKER_LANGUAGE C
83
+ PUBLIC_HEADER "${PACKAGE_PREFIX_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/@PROJECT_NAME@/@LIBRARY_NAME@.h"
84
+ SOVERSION "@PROJECT_VERSION_MAJOR@"
85
+ VERSION "@PROJECT_VERSION@"
86
+ # \note Cargo exports all of the symbols automatically.
87
+ WINDOWS_EXPORT_ALL_SYMBOLS "TRUE"
88
+ )
89
+
90
+ # Remove the variables that the find_* command calls cached.
91
+ unset(@SYMBOL_PREFIX@_IMPLIB_DEBUG CACHE)
92
+
93
+ unset(@SYMBOL_PREFIX@_IMPLIB_RELEASE CACHE)
94
+
95
+ unset(@SYMBOL_PREFIX@_LOCATION_DEBUG CACHE)
96
+
97
+ unset(@SYMBOL_PREFIX@_LOCATION_RELEASE CACHE)
98
+
99
+ check_required_components(@PROJECT_NAME@)
@@ -0,0 +1,48 @@
1
+ after_includes = """\n
2
+ /**
3
+ * \\defgroup enumerations Public Enumerations
4
+ * Symbolic names for integer constants.
5
+ */
6
+
7
+ /**
8
+ * \\memberof AMdoc
9
+ * \\def AM_ROOT
10
+ * \\brief The root object of a document.
11
+ */
12
+ #define AM_ROOT NULL
13
+
14
+ /**
15
+ * \\memberof AMdoc
16
+ * \\def AM_CHANGE_HASH_SIZE
17
+ * \\brief The count of bytes in a change hash.
18
+ */
19
+ #define AM_CHANGE_HASH_SIZE 32
20
+ """
21
+ autogen_warning = """
22
+ /**
23
+ * \\file
24
+ * \\brief All constants, functions and types in the core Automerge C API.
25
+ *
26
+ * \\warning This file is auto-generated by cbindgen.
27
+ */
28
+ """
29
+ documentation = true
30
+ documentation_style = "doxy"
31
+ include_guard = "@INCLUDE_GUARD_PREFIX@_H"
32
+ includes = []
33
+ language = "C"
34
+ line_length = 140
35
+ no_includes = true
36
+ style = "both"
37
+ sys_includes = ["stdbool.h", "stddef.h", "stdint.h", "time.h"]
38
+ usize_is_size_t = true
39
+
40
+ [enum]
41
+ derive_const_casts = true
42
+ enum_class = true
43
+ must_use = "MUST_USE_ENUM"
44
+ prefix_with_name = true
45
+ rename_variants = "ScreamingSnakeCase"
46
+
47
+ [export]
48
+ item_types = ["constants", "enums", "functions", "opaque", "structs", "typedefs"]
@@ -0,0 +1,58 @@
1
+ #ifndef @INCLUDE_GUARD_PREFIX@_CONFIG_H
2
+ #define @INCLUDE_GUARD_PREFIX@_CONFIG_H
3
+ /**
4
+ * \file
5
+ * \brief Configuration pararameters defined by the build system.
6
+ *
7
+ * \warning This file is auto-generated by CMake.
8
+ */
9
+
10
+ /**
11
+ * \def @SYMBOL_PREFIX@_VERSION
12
+ * \brief Denotes a semantic version of the form {MAJOR}{MINOR}{PATCH} as three,
13
+ * two-digit decimal numbers without leading zeros (e.g. 100 is 0.1.0).
14
+ */
15
+ #define @SYMBOL_PREFIX@_VERSION @INTEGER_PROJECT_VERSION@
16
+
17
+ /**
18
+ * \def @SYMBOL_PREFIX@_MAJOR_VERSION
19
+ * \brief Denotes a semantic major version as a decimal number.
20
+ */
21
+ #define @SYMBOL_PREFIX@_MAJOR_VERSION (@SYMBOL_PREFIX@_VERSION / 100000)
22
+
23
+ /**
24
+ * \def @SYMBOL_PREFIX@_MINOR_VERSION
25
+ * \brief Denotes a semantic minor version as a decimal number.
26
+ */
27
+ #define @SYMBOL_PREFIX@_MINOR_VERSION ((@SYMBOL_PREFIX@_VERSION / 100) % 1000)
28
+
29
+ /**
30
+ * \def @SYMBOL_PREFIX@_PATCH_VERSION
31
+ * \brief Denotes a semantic patch version as a decimal number.
32
+ */
33
+ #define @SYMBOL_PREFIX@_PATCH_VERSION (@SYMBOL_PREFIX@_VERSION % 100)
34
+
35
+ #ifdef DOXYGEN
36
+ /**
37
+ * \def @SYMBOL_PREFIX@_UTF8
38
+ * \brief Defined if the `pos` and `del` arguments of `AMspliceText()` and the
39
+ * length returned by `AMobjSize()` for an `AM_OBJ_TYPE_TEXT` object are
40
+ * in units of UTF-8 code points (i.e. bytes).
41
+ */
42
+ #define @SYMBOL_PREFIX@_UTF8
43
+
44
+ /**
45
+ * \def @SYMBOL_PREFIX@_UTF32
46
+ * \brief Defined if the `pos` and `del` arguments of `AMspliceText()` and the
47
+ * length returned by `AMobjSize()` for an `AM_OBJ_TYPE_TEXT` object are
48
+ * in units of UTF-32 code points.
49
+ */
50
+ #define @SYMBOL_PREFIX@_UTF32
51
+
52
+ #else
53
+
54
+ #define @SYMBOL_PREFIX@_@TEXT_INDEXING_ENCODING@
55
+
56
+ #endif
57
+
58
+ #endif /* @INCLUDE_GUARD_PREFIX@_CONFIG_H */
@@ -0,0 +1,183 @@
1
+ # This CMake script is used to generate a header and a source file for utility
2
+ # functions that convert the tags of generated enum types into strings and
3
+ # strings into the tags of generated enum types.
4
+ cmake_minimum_required(VERSION 3.25 FATAL_ERROR)
5
+
6
+ # Seeks the starting line of the source enum's declaration.
7
+ macro(seek_enum_mode)
8
+ if (line MATCHES "^(typedef[ \t]+)?enum ")
9
+ string(REGEX REPLACE "^(typedef[ \t]+)?enum ([0-9a-zA-Z_]+).*$" "\\2" enum_name "${line}")
10
+ set(mode "read_tags")
11
+ endif()
12
+ endmacro()
13
+
14
+ # Scans the input for the current enum's tags.
15
+ macro(read_tags_mode)
16
+ if(line MATCHES "^}[ \t]+${enum_name};")
17
+ set(mode "generate")
18
+ elseif(line MATCHES "^[A-Z0-9_]+.*$")
19
+ string(REGEX REPLACE "^([A-Za-z0-9_]+).*$" "\\1" tmp "${line}")
20
+ list(APPEND enum_tags "${tmp}")
21
+ endif()
22
+ endmacro()
23
+
24
+ macro(write_header_file)
25
+ # Generate a to-string function declaration.
26
+ list(APPEND header_body
27
+ "/**\n"
28
+ " * \\ingroup enumerations\n"
29
+ " * \\brief Gets the string representation of an `${enum_name}` enum tag.\n"
30
+ " *\n"
31
+ " * \\param[in] tag An `${enum_name}` enum tag.\n"
32
+ " * \\return A null-terminated byte string.\n"
33
+ " */\n"
34
+ "char const* ${enum_name}ToString(${enum_name} const tag)\;\n"
35
+ "\n")
36
+ # Generate a from-string function declaration.
37
+ list(APPEND header_body
38
+ "/**\n"
39
+ " * \\ingroup enumerations\n"
40
+ " * \\brief Gets an `${enum_name}` enum tag from its string representation.\n"
41
+ " *\n"
42
+ " * \\param[out] dest An `${enum_name}` enum tag pointer.\n"
43
+ " * \\param[in] src A null-terminated byte string.\n"
44
+ " * \\return `true` if \\p src matches the string representation of an\n"
45
+ " * `${enum_name}` enum tag, `false` otherwise.\n"
46
+ " */\n"
47
+ "bool ${enum_name}FromString(${enum_name}* dest, char const* const src)\;\n"
48
+ "\n")
49
+ endmacro()
50
+
51
+ macro(write_source_file)
52
+ # Generate a to-string function implementation.
53
+ list(APPEND source_body
54
+ "char const* ${enum_name}ToString(${enum_name} const tag) {\n"
55
+ " switch (tag) {\n"
56
+ " default:\n"
57
+ " return \"???\"\;\n")
58
+ foreach(label IN LISTS enum_tags)
59
+ list(APPEND source_body
60
+ " case ${label}:\n"
61
+ " return \"${label}\"\;\n")
62
+ endforeach()
63
+ list(APPEND source_body
64
+ " }\n"
65
+ "}\n"
66
+ "\n")
67
+ # Generate a from-string function implementation.
68
+ list(APPEND source_body
69
+ "bool ${enum_name}FromString(${enum_name}* dest, char const* const src) {\n")
70
+ foreach(label IN LISTS enum_tags)
71
+ list(APPEND source_body
72
+ " if (!strcmp(src, \"${label}\")) {\n"
73
+ " *dest = ${label}\;\n"
74
+ " return true\;\n"
75
+ " }\n")
76
+ endforeach()
77
+ list(APPEND source_body
78
+ " return false\;\n"
79
+ "}\n"
80
+ "\n")
81
+ endmacro()
82
+
83
+ function(main)
84
+ set(header_body "")
85
+ # File header and includes.
86
+ list(APPEND header_body
87
+ "#ifndef ${include_guard}\n"
88
+ "#define ${include_guard}\n"
89
+ "/**\n"
90
+ " * \\file\n"
91
+ " * \\brief Utility functions for converting enum tags into null-terminated\n"
92
+ " * byte strings and vice versa.\n"
93
+ " *\n"
94
+ " * \\warning This file is auto-generated by CMake.\n"
95
+ " */\n"
96
+ "\n"
97
+ "#include <stdbool.h>\n"
98
+ "\n"
99
+ "#include <${library_include}>\n"
100
+ "\n")
101
+ set(source_body "")
102
+ # File includes.
103
+ list(APPEND source_body
104
+ "/** \\warning This file is auto-generated by CMake. */\n"
105
+ "\n"
106
+ "#include \"stdio.h\"\n"
107
+ "#include \"string.h\"\n"
108
+ "\n"
109
+ "#include <${header_include}>\n"
110
+ "\n")
111
+ set(enum_name "")
112
+ set(enum_tags "")
113
+ set(mode "seek_enum")
114
+ file(STRINGS "${input_path}" lines)
115
+ foreach(line IN LISTS lines)
116
+ string(REGEX REPLACE "^(.+)(//.*)?" "\\1" line "${line}")
117
+ string(STRIP "${line}" line)
118
+ if(mode STREQUAL "seek_enum")
119
+ seek_enum_mode()
120
+ elseif(mode STREQUAL "read_tags")
121
+ read_tags_mode()
122
+ else()
123
+ # The end of the enum declaration was reached.
124
+ if(NOT enum_name)
125
+ # The end of the file was reached.
126
+ return()
127
+ endif()
128
+ if(NOT enum_tags)
129
+ message(FATAL_ERROR "No tags found for `${enum_name}`.")
130
+ endif()
131
+ string(TOLOWER "${enum_name}" output_stem_prefix)
132
+ string(CONCAT output_stem "${output_stem_prefix}" "_string")
133
+ cmake_path(REPLACE_EXTENSION output_stem "h" OUTPUT_VARIABLE output_header_basename)
134
+ write_header_file()
135
+ write_source_file()
136
+ set(enum_name "")
137
+ set(enum_tags "")
138
+ set(mode "seek_enum")
139
+ endif()
140
+ endforeach()
141
+ # File footer.
142
+ list(APPEND header_body
143
+ "#endif /* ${include_guard} */\n")
144
+ message(STATUS "Generating header file \"${output_header_path}\"...")
145
+ file(WRITE "${output_header_path}" ${header_body})
146
+ message(STATUS "Generating source file \"${output_source_path}\"...")
147
+ file(WRITE "${output_source_path}" ${source_body})
148
+ endfunction()
149
+
150
+ if(NOT DEFINED PROJECT_NAME)
151
+ message(FATAL_ERROR "Variable PROJECT_NAME is not defined.")
152
+ elseif(NOT DEFINED LIBRARY_NAME)
153
+ message(FATAL_ERROR "Variable LIBRARY_NAME is not defined.")
154
+ elseif(NOT DEFINED SUBDIR)
155
+ message(FATAL_ERROR "Variable SUBDIR is not defined.")
156
+ elseif(${CMAKE_ARGC} LESS 9)
157
+ message(FATAL_ERROR "Too few arguments.")
158
+ elseif(${CMAKE_ARGC} GREATER 10)
159
+ message(FATAL_ERROR "Too many arguments.")
160
+ elseif(NOT EXISTS ${CMAKE_ARGV5})
161
+ message(FATAL_ERROR "Input header \"${CMAKE_ARGV7}\" not found.")
162
+ endif()
163
+ cmake_path(CONVERT "${CMAKE_ARGV7}" TO_CMAKE_PATH_LIST input_path NORMALIZE)
164
+ cmake_path(CONVERT "${CMAKE_ARGV8}" TO_CMAKE_PATH_LIST output_header_path NORMALIZE)
165
+ cmake_path(CONVERT "${CMAKE_ARGV9}" TO_CMAKE_PATH_LIST output_source_path NORMALIZE)
166
+ string(TOLOWER "${PROJECT_NAME}" project_root)
167
+ cmake_path(CONVERT "${SUBDIR}" TO_CMAKE_PATH_LIST project_subdir NORMALIZE)
168
+ string(TOLOWER "${project_subdir}" project_subdir)
169
+ string(TOLOWER "${LIBRARY_NAME}" library_stem)
170
+ cmake_path(REPLACE_EXTENSION library_stem "h" OUTPUT_VARIABLE library_basename)
171
+ string(JOIN "/" library_include "${project_root}" "${library_basename}")
172
+ string(TOUPPER "${PROJECT_NAME}" project_name_upper)
173
+ string(TOUPPER "${project_subdir}" include_guard_infix)
174
+ string(REGEX REPLACE "/" "_" include_guard_infix "${include_guard_infix}")
175
+ string(REGEX REPLACE "-" "_" include_guard_prefix "${project_name_upper}")
176
+ string(JOIN "_" include_guard_prefix "${include_guard_prefix}" "${include_guard_infix}")
177
+ string(JOIN "/" output_header_prefix "${project_root}" "${project_subdir}")
178
+ cmake_path(GET output_header_path STEM output_header_stem)
179
+ string(TOUPPER "${output_header_stem}" include_guard_stem)
180
+ string(JOIN "_" include_guard "${include_guard_prefix}" "${include_guard_stem}" "H")
181
+ cmake_path(GET output_header_path FILENAME output_header_basename)
182
+ string(JOIN "/" header_include "${output_header_prefix}" "${output_header_basename}")
183
+ main()
@@ -0,0 +1,33 @@
1
+ # This CMake script is used to perform string substitutions within a generated
2
+ # file.
3
+ cmake_minimum_required(VERSION 3.25 FATAL_ERROR)
4
+
5
+ if(NOT DEFINED MATCH_REGEX)
6
+ message(FATAL_ERROR "Variable \"MATCH_REGEX\" is not defined.")
7
+ elseif(NOT DEFINED REPLACE_EXPR)
8
+ message(FATAL_ERROR "Variable \"REPLACE_EXPR\" is not defined.")
9
+ elseif(${CMAKE_ARGC} LESS 7)
10
+ message(FATAL_ERROR "Too few arguments.")
11
+ elseif(${CMAKE_ARGC} GREATER 8)
12
+ message(FATAL_ERROR "Too many arguments.")
13
+ elseif(NOT EXISTS ${CMAKE_ARGV6})
14
+ message(FATAL_ERROR "Input file \"${CMAKE_ARGV6}\" not found.")
15
+ endif()
16
+
17
+ message(STATUS "Replacing \"${MATCH_REGEX}\" with \"${REPLACE_EXPR}\" in \"${CMAKE_ARGV6}\"...")
18
+
19
+ file(READ ${CMAKE_ARGV6} INPUT_STRING)
20
+
21
+ string(REGEX REPLACE "${MATCH_REGEX}" "${REPLACE_EXPR}" OUTPUT_STRING "${INPUT_STRING}")
22
+
23
+ if(DEFINED CMAKE_ARGV7)
24
+ set(OUTPUT_FILE "${CMAKE_ARGV7}")
25
+ else()
26
+ set(OUTPUT_FILE "${CMAKE_ARGV6}")
27
+ endif()
28
+
29
+ if(NOT "${OUTPUT_STRING}" STREQUAL "${INPUT_STRING}")
30
+ file(WRITE ${OUTPUT_FILE} "${OUTPUT_STRING}")
31
+
32
+ message(STATUS "Created/updated \"${OUTPUT_FILE}\".")
33
+ endif()
@@ -0,0 +1,35 @@
1
+ # This CMake script is used to force Cargo to regenerate the header file for the
2
+ # core bindings after the out-of-source build directory has been cleaned.
3
+ cmake_minimum_required(VERSION 3.25 FATAL_ERROR)
4
+
5
+ if(NOT DEFINED CONDITION)
6
+ message(FATAL_ERROR "Variable \"CONDITION\" is not defined.")
7
+ elseif(${CMAKE_ARGC} LESS 7)
8
+ message(FATAL_ERROR "Too few arguments.")
9
+ elseif(${CMAKE_ARGC} GREATER 7)
10
+ message(FATAL_ERROR "Too many arguments.")
11
+ elseif(NOT EXISTS ${CMAKE_ARGV6})
12
+ message(FATAL_ERROR "File \"${CMAKE_ARGV6}\" not found.")
13
+ elseif(IS_DIRECTORY "${CMAKE_ARG6}")
14
+ message(FATAL_ERROR "Directory \"${CMAKE_ARG6}\" can't be touched.")
15
+ endif()
16
+
17
+ message(STATUS "Touching \"${CMAKE_ARGV6}\" if ${CONDITION} \"${CMAKE_ARGV5}\"...")
18
+
19
+ if(CONDITION STREQUAL "EXISTS")
20
+ if(EXISTS "${CMAKE_ARGV5}")
21
+ set(DO_IT TRUE)
22
+ endif()
23
+ elseif((CONDITION STREQUAL "NOT_EXISTS") OR (CONDITION STREQUAL "!EXISTS"))
24
+ if(NOT EXISTS "${CMAKE_ARGV5}")
25
+ set(DO_IT TRUE)
26
+ endif()
27
+ else()
28
+ message(FATAL_ERROR "Unexpected condition \"${CONDITION}\".")
29
+ endif()
30
+
31
+ if(DO_IT)
32
+ file(TOUCH_NOCREATE "${CMAKE_ARGV6}")
33
+
34
+ message(STATUS "Touched \"${CMAKE_ARGV6}\".")
35
+ endif()
@@ -0,0 +1,39 @@
1
+ cmake_minimum_required(VERSION 3.25 FATAL_ERROR)
2
+
3
+ find_package(Doxygen OPTIONAL_COMPONENTS dot)
4
+
5
+ if(DOXYGEN_FOUND)
6
+ set(DOXYGEN_ALIASES "installed_headerfile=\\headerfile ${LIBRARY_NAME}.h <${PROJECT_NAME}/${LIBRARY_NAME}.h>")
7
+
8
+ set(DOXYGEN_GENERATE_LATEX YES)
9
+
10
+ set(DOXYGEN_PDF_HYPERLINKS YES)
11
+
12
+ set(DOXYGEN_PREDEFINED "DOXYGEN")
13
+
14
+ set(DOXYGEN_PROJECT_LOGO "${CMAKE_CURRENT_SOURCE_DIR}/img/brandmark.png")
15
+
16
+ set(DOXYGEN_SORT_BRIEF_DOCS YES)
17
+
18
+ set(DOXYGEN_USE_MDFILE_AS_MAINPAGE "${PROJECT_SOURCE_DIR}/README.md")
19
+
20
+ doxygen_add_docs(
21
+ ${LIBRARY_NAME}_docs
22
+ "${CBINDGEN_TARGET_DIR}/${LIBRARY_NAME}.h"
23
+ "${CBINDGEN_TARGET_DIR}/config.h"
24
+ "${CBINDGEN_TARGET_DIR}/${UTILS_SUBDIR}/enum_string.h"
25
+ "${PROJECT_SOURCE_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${UTILS_SUBDIR}/result.h"
26
+ "${PROJECT_SOURCE_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${UTILS_SUBDIR}/stack_callback_data.h"
27
+ "${PROJECT_SOURCE_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${UTILS_SUBDIR}/stack.h"
28
+ "${PROJECT_SOURCE_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${UTILS_SUBDIR}/string.h"
29
+ "${PROJECT_SOURCE_DIR}/README.md"
30
+ WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
31
+ COMMENT "Producing documentation with Doxygen..."
32
+ )
33
+
34
+ # \note A Doxygen input file isn't a file-level dependency so the Doxygen
35
+ # command must instead depend upon a target that either outputs the
36
+ # file or depends upon it also or it will just output an error message
37
+ # when it can't be found.
38
+ add_dependencies(${LIBRARY_NAME}_docs ${BINDINGS_NAME}_artifacts ${LIBRARY_NAME}_utilities)
39
+ endif()
@@ -0,0 +1,42 @@
1
+ cmake_minimum_required(VERSION 3.25 FATAL_ERROR)
2
+
3
+ add_executable(
4
+ ${LIBRARY_NAME}_quickstart
5
+ quickstart.c
6
+ )
7
+
8
+ set_target_properties(${LIBRARY_NAME}_quickstart PROPERTIES LINKER_LANGUAGE C)
9
+
10
+ # \note An imported library's INTERFACE_INCLUDE_DIRECTORIES property can't
11
+ # contain a non-existent path so its build-time include directory
12
+ # must be specified for all of its dependent targets instead.
13
+ target_include_directories(
14
+ ${LIBRARY_NAME}_quickstart
15
+ PRIVATE "$<BUILD_INTERFACE:${CBINDGEN_INCLUDEDIR}>"
16
+ )
17
+
18
+ target_link_libraries(${LIBRARY_NAME}_quickstart PRIVATE ${LIBRARY_NAME})
19
+
20
+ add_dependencies(${LIBRARY_NAME}_quickstart ${BINDINGS_NAME}_artifacts)
21
+
22
+ if(BUILD_SHARED_LIBS AND WIN32)
23
+ add_custom_command(
24
+ TARGET ${LIBRARY_NAME}_quickstart
25
+ POST_BUILD
26
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
27
+ ${CARGO_CURRENT_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${LIBRARY_NAME}${CMAKE_${CMAKE_BUILD_TYPE}_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX}
28
+ ${CMAKE_CURRENT_BINARY_DIR}
29
+ COMMENT "Copying the DLL built by Cargo into the examples directory..."
30
+ VERBATIM
31
+ )
32
+ endif()
33
+
34
+ add_custom_command(
35
+ TARGET ${LIBRARY_NAME}_quickstart
36
+ POST_BUILD
37
+ COMMAND
38
+ ${LIBRARY_NAME}_quickstart
39
+ COMMENT
40
+ "Running the example quickstart..."
41
+ VERBATIM
42
+ )
@@ -0,0 +1,9 @@
1
+ # Automerge C examples
2
+
3
+ ## Quickstart
4
+
5
+ ```shell
6
+ cmake -E make_directory automerge-c/build
7
+ cmake -S automerge-c -B automerge-c/build
8
+ cmake --build automerge-c/build --target automerge_quickstart
9
+ ```