code_ownership 2.2.0 → 2.2.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 (445) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +30 -27
  3. data/bin/codeownership +1 -0
  4. data/ext/cargo-vendor/bindgen-0.72.1/.cargo-checksum.json +1 -0
  5. data/ext/cargo-vendor/bindgen-0.72.1/.cargo_vcs_info.json +6 -0
  6. data/ext/cargo-vendor/bindgen-0.72.1/Cargo.lock +485 -0
  7. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/Cargo.toml +72 -38
  8. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/Cargo.toml.orig +26 -28
  9. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/README.md +2 -2
  10. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/build.rs +2 -2
  11. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/callbacks.rs +114 -10
  12. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/clang.rs +184 -83
  13. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/bitfield_unit.rs +20 -10
  14. data/ext/cargo-vendor/bindgen-0.72.1/codegen/bitfield_unit_raw_ref_macros.rs +191 -0
  15. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/bitfield_unit_tests.rs +4 -4
  16. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/dyngen.rs +77 -20
  17. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/error.rs +2 -3
  18. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/helpers.rs +106 -66
  19. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/impl_debug.rs +32 -34
  20. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/impl_partialeq.rs +5 -5
  21. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/mod.rs +1197 -679
  22. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/postprocessing/merge_extern_blocks.rs +3 -3
  23. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/postprocessing/sort_semantically.rs +3 -3
  24. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/serialize.rs +33 -34
  25. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/struct_layout.rs +33 -26
  26. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/deps.rs +1 -1
  27. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/diagnostics.rs +22 -65
  28. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/extra_assertions.rs +1 -1
  29. data/ext/cargo-vendor/bindgen-0.72.1/features.rs +570 -0
  30. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/analysis/derive.rs +69 -75
  31. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/analysis/has_destructor.rs +5 -6
  32. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/analysis/has_float.rs +13 -17
  33. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/analysis/has_type_param_in_array.rs +22 -32
  34. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/analysis/has_vtable.rs +11 -16
  35. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/analysis/mod.rs +15 -20
  36. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/analysis/sizedness.rs +13 -21
  37. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/analysis/template_params.rs +20 -26
  38. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/annotations.rs +18 -15
  39. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/comment.rs +2 -2
  40. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/comp.rs +54 -29
  41. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/context.rs +205 -136
  42. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/derive.rs +5 -10
  43. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/dot.rs +3 -4
  44. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/enum_ty.rs +5 -7
  45. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/function.rs +27 -28
  46. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/int.rs +7 -6
  47. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/item.rs +92 -132
  48. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/item_kind.rs +7 -7
  49. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/layout.rs +11 -23
  50. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/module.rs +2 -2
  51. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/objc.rs +22 -33
  52. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/template.rs +26 -33
  53. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/traversal.rs +4 -5
  54. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/ty.rs +63 -88
  55. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/var.rs +73 -38
  56. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/lib.rs +186 -144
  57. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/log_stubs.rs +6 -0
  58. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/options/as_args.rs +1 -1
  59. data/ext/cargo-vendor/bindgen-0.72.1/options/cli.rs +1151 -0
  60. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/options/mod.rs +234 -27
  61. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/regex_set.rs +23 -28
  62. data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/time.rs +4 -4
  63. data/ext/cargo-vendor/rb-sys-0.9.130/.cargo-checksum.json +1 -0
  64. data/ext/cargo-vendor/rb-sys-0.9.130/.cargo_vcs_info.json +6 -0
  65. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/Cargo.lock +23 -31
  66. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/Cargo.toml +5 -4
  67. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/Cargo.toml.orig +5 -4
  68. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/build/main.rs +7 -1
  69. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/build/stable_api_config.rs +30 -6
  70. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/build/version.rs +14 -6
  71. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/bindings.rs +1 -0
  72. data/ext/cargo-vendor/rb-sys-0.9.130/src/macros.rs +701 -0
  73. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/memory.rs +17 -6
  74. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/stable_api/compiled.c +169 -10
  75. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/stable_api/compiled.rs +209 -14
  76. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_2_7.rs +770 -0
  77. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_0.rs +773 -0
  78. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_1.rs +766 -0
  79. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_2.rs +764 -0
  80. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_3.rs +777 -0
  81. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_4.rs +788 -0
  82. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_4_0.rs +784 -0
  83. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/stable_api.rs +213 -9
  84. data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/utils.rs +12 -7
  85. data/ext/cargo-vendor/rb-sys-build-0.9.130/.cargo-checksum.json +1 -0
  86. data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/.cargo_vcs_info.json +1 -1
  87. data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/Cargo.lock +19 -27
  88. data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/Cargo.toml +8 -3
  89. data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/Cargo.toml.orig +4 -3
  90. data/ext/cargo-vendor/rb-sys-build-0.9.130/src/bindings/gc_stress.rs +303 -0
  91. data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/bindings/stable_api.rs +102 -11
  92. data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/bindings.rs +19 -13
  93. data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/cc.rs +1 -1
  94. data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/rb_config.rs +199 -2
  95. data/ext/cargo-vendor/rb-sys-build-0.9.130/tests/fixtures/rubyopt_stdout.rb +1 -0
  96. data/ext/cargo-vendor/rb-sys-build-0.9.130/tests/rubyopt.rs +17 -0
  97. data/ext/cargo-vendor/rb-sys-env-0.2.3/.cargo-checksum.json +1 -0
  98. data/ext/cargo-vendor/rb-sys-env-0.2.3/.cargo_vcs_info.json +6 -0
  99. data/ext/cargo-vendor/rb-sys-env-0.2.3/Cargo.lock +7 -0
  100. data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/Cargo.toml +2 -2
  101. data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/Cargo.toml.orig +2 -2
  102. data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/readme.md +0 -2
  103. data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/src/ruby_version.rs +3 -1
  104. data/ext/cargo-vendor/rustc-hash-2.1.3/.cargo-checksum.json +1 -0
  105. data/ext/cargo-vendor/rustc-hash-2.1.3/.cargo_vcs_info.json +6 -0
  106. data/ext/cargo-vendor/rustc-hash-2.1.3/.github/workflows/rust.yml +73 -0
  107. data/ext/cargo-vendor/rustc-hash-2.1.3/CHANGELOG.md +41 -0
  108. data/ext/cargo-vendor/rustc-hash-2.1.3/CODE_OF_CONDUCT.md +3 -0
  109. data/ext/cargo-vendor/rustc-hash-2.1.3/Cargo.lock +90 -0
  110. data/ext/cargo-vendor/rustc-hash-2.1.3/Cargo.toml +50 -0
  111. data/ext/cargo-vendor/rustc-hash-2.1.3/Cargo.toml.orig +20 -0
  112. data/ext/cargo-vendor/rustc-hash-2.1.3/LICENSE-APACHE +176 -0
  113. data/ext/cargo-vendor/rustc-hash-2.1.3/LICENSE-MIT +23 -0
  114. data/ext/cargo-vendor/rustc-hash-2.1.3/README.md +42 -0
  115. data/ext/cargo-vendor/rustc-hash-2.1.3/src/lib.rs +472 -0
  116. data/ext/cargo-vendor/rustc-hash-2.1.3/src/random_state.rs +101 -0
  117. data/ext/cargo-vendor/rustc-hash-2.1.3/src/seeded_state.rs +76 -0
  118. data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/.cargo-checksum.json +1 -1
  119. data/ext/cargo-vendor/serde-1.0.229/.cargo_vcs_info.json +6 -0
  120. data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/Cargo.lock +13 -13
  121. data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/Cargo.toml +2 -2
  122. data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/Cargo.toml.orig +2 -2
  123. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde-1.0.229}/README.md +3 -3
  124. data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/build.rs +2 -2
  125. data/ext/cargo-vendor/{serde_core-1.0.228/src → serde-1.0.229/src/core}/de/impls.rs +4 -4
  126. data/ext/cargo-vendor/{serde_core-1.0.228/src → serde-1.0.229/src/core}/lib.rs +2 -2
  127. data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/lib.rs +3 -3
  128. data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/.cargo-checksum.json +1 -1
  129. data/ext/cargo-vendor/serde_core-1.0.229/.cargo_vcs_info.json +6 -0
  130. data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/Cargo.lock +11 -11
  131. data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/Cargo.toml +2 -2
  132. data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/Cargo.toml.orig +2 -2
  133. data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/build.rs +5 -5
  134. data/ext/cargo-vendor/{serde-1.0.228/src/core → serde_core-1.0.229/src}/de/impls.rs +4 -4
  135. data/ext/cargo-vendor/{serde-1.0.228/src/core → serde_core-1.0.229/src}/lib.rs +2 -2
  136. data/ext/cargo-vendor/serde_derive-1.0.229/.cargo-checksum.json +1 -0
  137. data/ext/cargo-vendor/serde_derive-1.0.229/.cargo_vcs_info.json +6 -0
  138. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/Cargo.lock +29 -18
  139. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/Cargo.toml +3 -3
  140. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/Cargo.toml.orig +2 -2
  141. data/ext/cargo-vendor/{serde-1.0.228 → serde_derive-1.0.229}/README.md +3 -3
  142. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/bound.rs +80 -59
  143. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/enum_adjacently.rs +46 -45
  144. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/enum_externally.rs +3 -2
  145. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de.rs +10 -7
  146. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/ast.rs +15 -8
  147. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/attr.rs +18 -31
  148. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/ctxt.rs +3 -4
  149. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/receiver.rs +2 -2
  150. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/lib.rs +1 -1
  151. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/pretend.rs +7 -7
  152. data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/ser.rs +94 -94
  153. data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/.cargo-checksum.json +1 -1
  154. data/ext/cargo-vendor/serde_magnus-0.11.0/.cargo_vcs_info.json +6 -0
  155. data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/Cargo.lock +71 -73
  156. data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/Cargo.toml +2 -2
  157. data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/Cargo.toml.orig +2 -2
  158. data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/README.md +1 -1
  159. data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/deserializer.rs +2 -2
  160. data/ext/cargo-vendor/syn-3.0.9/.cargo-checksum.json +1 -0
  161. data/ext/cargo-vendor/syn-3.0.9/.cargo_vcs_info.json +6 -0
  162. data/ext/cargo-vendor/syn-3.0.9/Cargo.lock +1948 -0
  163. data/ext/cargo-vendor/syn-3.0.9/Cargo.toml +268 -0
  164. data/ext/cargo-vendor/syn-3.0.9/Cargo.toml.orig +95 -0
  165. data/ext/cargo-vendor/{lazycell-1.3.0 → syn-3.0.9}/LICENSE-APACHE +0 -25
  166. data/ext/cargo-vendor/syn-3.0.9/README.md +297 -0
  167. data/ext/cargo-vendor/syn-3.0.9/benches/file.rs +59 -0
  168. data/ext/cargo-vendor/syn-3.0.9/benches/rust.rs +189 -0
  169. data/ext/cargo-vendor/syn-3.0.9/src/attr.rs +841 -0
  170. data/ext/cargo-vendor/syn-3.0.9/src/bigint.rs +68 -0
  171. data/ext/cargo-vendor/syn-3.0.9/src/buffer.rs +462 -0
  172. data/ext/cargo-vendor/syn-3.0.9/src/classify.rs +311 -0
  173. data/ext/cargo-vendor/syn-3.0.9/src/custom_keyword.rs +260 -0
  174. data/ext/cargo-vendor/syn-3.0.9/src/custom_punctuation.rs +305 -0
  175. data/ext/cargo-vendor/syn-3.0.9/src/data.rs +489 -0
  176. data/ext/cargo-vendor/syn-3.0.9/src/derive.rs +260 -0
  177. data/ext/cargo-vendor/syn-3.0.9/src/discouraged.rs +233 -0
  178. data/ext/cargo-vendor/syn-3.0.9/src/drops.rs +58 -0
  179. data/ext/cargo-vendor/syn-3.0.9/src/error.rs +552 -0
  180. data/ext/cargo-vendor/syn-3.0.9/src/export.rs +73 -0
  181. data/ext/cargo-vendor/syn-3.0.9/src/expr.rs +4249 -0
  182. data/ext/cargo-vendor/syn-3.0.9/src/ext.rs +180 -0
  183. data/ext/cargo-vendor/syn-3.0.9/src/file.rs +136 -0
  184. data/ext/cargo-vendor/syn-3.0.9/src/fixup.rs +773 -0
  185. data/ext/cargo-vendor/syn-3.0.9/src/gen/clone.rs +2394 -0
  186. data/ext/cargo-vendor/syn-3.0.9/src/gen/debug.rs +3399 -0
  187. data/ext/cargo-vendor/syn-3.0.9/src/gen/eq.rs +2459 -0
  188. data/ext/cargo-vendor/syn-3.0.9/src/gen/fold.rs +3934 -0
  189. data/ext/cargo-vendor/syn-3.0.9/src/gen/hash.rs +3040 -0
  190. data/ext/cargo-vendor/syn-3.0.9/src/gen/token.css +744 -0
  191. data/ext/cargo-vendor/syn-3.0.9/src/gen/visit.rs +4037 -0
  192. data/ext/cargo-vendor/syn-3.0.9/src/gen/visit_mut.rs +3824 -0
  193. data/ext/cargo-vendor/syn-3.0.9/src/generics.rs +1490 -0
  194. data/ext/cargo-vendor/syn-3.0.9/src/group.rs +294 -0
  195. data/ext/cargo-vendor/syn-3.0.9/src/ident.rs +109 -0
  196. data/ext/cargo-vendor/syn-3.0.9/src/item.rs +3923 -0
  197. data/ext/cargo-vendor/syn-3.0.9/src/lib.rs +1132 -0
  198. data/ext/cargo-vendor/syn-3.0.9/src/lifetime.rs +193 -0
  199. data/ext/cargo-vendor/syn-3.0.9/src/lit.rs +1881 -0
  200. data/ext/cargo-vendor/syn-3.0.9/src/lookahead.rs +350 -0
  201. data/ext/cargo-vendor/syn-3.0.9/src/mac.rs +225 -0
  202. data/ext/cargo-vendor/syn-3.0.9/src/macros.rs +151 -0
  203. data/ext/cargo-vendor/syn-3.0.9/src/meta.rs +427 -0
  204. data/ext/cargo-vendor/syn-3.0.9/src/op.rs +219 -0
  205. data/ext/cargo-vendor/syn-3.0.9/src/parse.rs +1420 -0
  206. data/ext/cargo-vendor/syn-3.0.9/src/parse_macro_input.rs +128 -0
  207. data/ext/cargo-vendor/syn-3.0.9/src/parse_quote.rs +261 -0
  208. data/ext/cargo-vendor/syn-3.0.9/src/pat.rs +994 -0
  209. data/ext/cargo-vendor/syn-3.0.9/src/path.rs +972 -0
  210. data/ext/cargo-vendor/syn-3.0.9/src/precedence.rs +210 -0
  211. data/ext/cargo-vendor/syn-3.0.9/src/print.rs +16 -0
  212. data/ext/cargo-vendor/syn-3.0.9/src/punctuated.rs +1200 -0
  213. data/ext/cargo-vendor/syn-3.0.9/src/restriction.rs +160 -0
  214. data/ext/cargo-vendor/syn-3.0.9/src/scan_expr.rs +270 -0
  215. data/ext/cargo-vendor/syn-3.0.9/src/sealed.rs +4 -0
  216. data/ext/cargo-vendor/syn-3.0.9/src/span.rs +63 -0
  217. data/ext/cargo-vendor/syn-3.0.9/src/spanned.rs +118 -0
  218. data/ext/cargo-vendor/syn-3.0.9/src/stmt.rs +536 -0
  219. data/ext/cargo-vendor/syn-3.0.9/src/thread.rs +60 -0
  220. data/ext/cargo-vendor/syn-3.0.9/src/token.rs +1103 -0
  221. data/ext/cargo-vendor/syn-3.0.9/src/tt.rs +97 -0
  222. data/ext/cargo-vendor/syn-3.0.9/src/ty.rs +1347 -0
  223. data/ext/cargo-vendor/syn-3.0.9/src/verbatim.rs +32 -0
  224. data/ext/cargo-vendor/syn-3.0.9/src/whitespace.rs +65 -0
  225. data/ext/cargo-vendor/syn-3.0.9/tests/common/eq.rs +939 -0
  226. data/ext/cargo-vendor/syn-3.0.9/tests/common/mod.rs +6 -0
  227. data/ext/cargo-vendor/syn-3.0.9/tests/common/parse.rs +51 -0
  228. data/ext/cargo-vendor/syn-3.0.9/tests/common/visit.rs +119 -0
  229. data/ext/cargo-vendor/syn-3.0.9/tests/debug/gen.rs +5394 -0
  230. data/ext/cargo-vendor/syn-3.0.9/tests/debug/mod.rs +147 -0
  231. data/ext/cargo-vendor/syn-3.0.9/tests/macros/mod.rs +7 -0
  232. data/ext/cargo-vendor/syn-3.0.9/tests/regression/issue1108.rs +5 -0
  233. data/ext/cargo-vendor/syn-3.0.9/tests/regression/issue1235.rs +32 -0
  234. data/ext/cargo-vendor/syn-3.0.9/tests/regression.rs +5 -0
  235. data/ext/cargo-vendor/syn-3.0.9/tests/repo/mod.rs +789 -0
  236. data/ext/cargo-vendor/syn-3.0.9/tests/repo/progress.rs +37 -0
  237. data/ext/cargo-vendor/syn-3.0.9/tests/snapshot/mod.rs +68 -0
  238. data/ext/cargo-vendor/syn-3.0.9/tests/test_attribute.rs +231 -0
  239. data/ext/cargo-vendor/syn-3.0.9/tests/test_derive_input.rs +801 -0
  240. data/ext/cargo-vendor/syn-3.0.9/tests/test_expr.rs +1721 -0
  241. data/ext/cargo-vendor/syn-3.0.9/tests/test_generics.rs +363 -0
  242. data/ext/cargo-vendor/syn-3.0.9/tests/test_grouping.rs +59 -0
  243. data/ext/cargo-vendor/syn-3.0.9/tests/test_ident.rs +87 -0
  244. data/ext/cargo-vendor/syn-3.0.9/tests/test_item.rs +374 -0
  245. data/ext/cargo-vendor/syn-3.0.9/tests/test_lit.rs +335 -0
  246. data/ext/cargo-vendor/syn-3.0.9/tests/test_meta.rs +180 -0
  247. data/ext/cargo-vendor/syn-3.0.9/tests/test_parse_buffer.rs +104 -0
  248. data/ext/cargo-vendor/syn-3.0.9/tests/test_parse_quote.rs +175 -0
  249. data/ext/cargo-vendor/syn-3.0.9/tests/test_parse_stream.rs +187 -0
  250. data/ext/cargo-vendor/syn-3.0.9/tests/test_pat.rs +158 -0
  251. data/ext/cargo-vendor/syn-3.0.9/tests/test_path.rs +117 -0
  252. data/ext/cargo-vendor/syn-3.0.9/tests/test_precedence.rs +560 -0
  253. data/ext/cargo-vendor/syn-3.0.9/tests/test_punctuated.rs +92 -0
  254. data/ext/cargo-vendor/syn-3.0.9/tests/test_receiver.rs +275 -0
  255. data/ext/cargo-vendor/syn-3.0.9/tests/test_round_trip.rs +226 -0
  256. data/ext/cargo-vendor/syn-3.0.9/tests/test_shebang.rs +77 -0
  257. data/ext/cargo-vendor/syn-3.0.9/tests/test_size.rs +54 -0
  258. data/ext/cargo-vendor/syn-3.0.9/tests/test_stmt.rs +378 -0
  259. data/ext/cargo-vendor/syn-3.0.9/tests/test_token_trees.rs +38 -0
  260. data/ext/cargo-vendor/syn-3.0.9/tests/test_ty.rs +479 -0
  261. data/ext/cargo-vendor/syn-3.0.9/tests/test_unparenthesize.rs +71 -0
  262. data/ext/cargo-vendor/syn-3.0.9/tests/test_visibility.rs +193 -0
  263. data/ext/cargo-vendor/syn-3.0.9/tests/zzz_stable.rs +33 -0
  264. data/ext/code_ownership/Cargo.toml +1 -1
  265. data/ext/code_ownership/src/lib.rs +2 -2
  266. data/lib/code_ownership/version.rb +1 -1
  267. data/lib/code_ownership.rb +1 -1
  268. metadata +400 -293
  269. data/ext/cargo-vendor/bindgen-0.69.5/.cargo-checksum.json +0 -1
  270. data/ext/cargo-vendor/bindgen-0.69.5/.cargo_vcs_info.json +0 -6
  271. data/ext/cargo-vendor/bindgen-0.69.5/features.rs +0 -296
  272. data/ext/cargo-vendor/lazycell-1.3.0/.cargo-checksum.json +0 -1
  273. data/ext/cargo-vendor/lazycell-1.3.0/.cargo_vcs_info.json +0 -5
  274. data/ext/cargo-vendor/lazycell-1.3.0/CHANGELOG.md +0 -197
  275. data/ext/cargo-vendor/lazycell-1.3.0/Cargo.toml +0 -34
  276. data/ext/cargo-vendor/lazycell-1.3.0/Cargo.toml.orig +0 -27
  277. data/ext/cargo-vendor/lazycell-1.3.0/LICENSE-MIT +0 -26
  278. data/ext/cargo-vendor/lazycell-1.3.0/README.md +0 -73
  279. data/ext/cargo-vendor/lazycell-1.3.0/src/lib.rs +0 -680
  280. data/ext/cargo-vendor/lazycell-1.3.0/src/serde_impl.rs +0 -86
  281. data/ext/cargo-vendor/rb-sys-0.9.117/.cargo-checksum.json +0 -1
  282. data/ext/cargo-vendor/rb-sys-0.9.117/.cargo_vcs_info.json +0 -6
  283. data/ext/cargo-vendor/rb-sys-0.9.117/src/macros.rs +0 -371
  284. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_2_6.rs +0 -324
  285. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_2_7.rs +0 -324
  286. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_0.rs +0 -332
  287. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_1.rs +0 -325
  288. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_2.rs +0 -323
  289. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_3.rs +0 -339
  290. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_4.rs +0 -339
  291. data/ext/cargo-vendor/rb-sys-build-0.9.117/.cargo-checksum.json +0 -1
  292. data/ext/cargo-vendor/rb-sys-env-0.2.2/.cargo-checksum.json +0 -1
  293. data/ext/cargo-vendor/rb-sys-env-0.2.2/.cargo_vcs_info.json +0 -6
  294. data/ext/cargo-vendor/rustc-hash-1.1.0/.cargo-checksum.json +0 -1
  295. data/ext/cargo-vendor/rustc-hash-1.1.0/.cargo_vcs_info.json +0 -5
  296. data/ext/cargo-vendor/rustc-hash-1.1.0/CODE_OF_CONDUCT.md +0 -40
  297. data/ext/cargo-vendor/rustc-hash-1.1.0/Cargo.toml +0 -25
  298. data/ext/cargo-vendor/rustc-hash-1.1.0/Cargo.toml.orig +0 -13
  299. data/ext/cargo-vendor/rustc-hash-1.1.0/LICENSE-APACHE +0 -201
  300. data/ext/cargo-vendor/rustc-hash-1.1.0/README.md +0 -38
  301. data/ext/cargo-vendor/rustc-hash-1.1.0/src/lib.rs +0 -148
  302. data/ext/cargo-vendor/serde-1.0.228/.cargo_vcs_info.json +0 -6
  303. data/ext/cargo-vendor/serde_core-1.0.228/.cargo_vcs_info.json +0 -6
  304. data/ext/cargo-vendor/serde_derive-1.0.228/.cargo-checksum.json +0 -1
  305. data/ext/cargo-vendor/serde_derive-1.0.228/.cargo_vcs_info.json +0 -6
  306. data/ext/cargo-vendor/serde_magnus-0.10.0/.cargo_vcs_info.json +0 -6
  307. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/LICENSE +0 -0
  308. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/postprocessing/mod.rs +0 -0
  309. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/mod.rs +0 -0
  310. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/options/helpers.rs +0 -0
  311. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/parse.rs +0 -0
  312. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/LICENSE-APACHE +0 -0
  313. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/LICENSE-MIT +0 -0
  314. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/bin/release.sh +0 -0
  315. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/build/features.rs +0 -0
  316. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/readme.md +0 -0
  317. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/hidden.rs +0 -0
  318. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/lib.rs +0 -0
  319. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/ruby_abi_version.rs +0 -0
  320. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/special_consts.rs +0 -0
  321. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/symbol.rs +0 -0
  322. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/tracking_allocator.rs +0 -0
  323. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/value_type.rs +0 -0
  324. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/LICENSE-APACHE +0 -0
  325. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/LICENSE-MIT +0 -0
  326. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/bindings/sanitizer.rs +0 -0
  327. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/bindings/wrapper.h +0 -0
  328. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/lib.rs +0 -0
  329. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/rb_config/flags.rs +0 -0
  330. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/rb_config/library.rs +0 -0
  331. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/rb_config/search_path.rs +0 -0
  332. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/utils.rs +0 -0
  333. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/LICENSE-APACHE +0 -0
  334. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/LICENSE-MIT +0 -0
  335. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/build.rs +0 -0
  336. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/src/defines.rs +0 -0
  337. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/src/lib.rs +0 -0
  338. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/src/rb_env.rs +0 -0
  339. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/src/utils.rs +0 -0
  340. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/LICENSE-APACHE +0 -0
  341. /data/ext/cargo-vendor/{rustc-hash-1.1.0 → serde-1.0.229}/LICENSE-MIT +0 -0
  342. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/crates-io.md +0 -0
  343. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/crate_root.rs +0 -0
  344. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/de/ignored_any.rs +0 -0
  345. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/de/mod.rs +0 -0
  346. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/de/value.rs +0 -0
  347. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/format.rs +0 -0
  348. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/macros.rs +0 -0
  349. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/content.rs +0 -0
  350. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/doc.rs +0 -0
  351. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/mod.rs +0 -0
  352. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/seed.rs +0 -0
  353. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/size_hint.rs +0 -0
  354. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/string.rs +0 -0
  355. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/ser/fmt.rs +0 -0
  356. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/ser/impls.rs +0 -0
  357. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/ser/impossible.rs +0 -0
  358. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/ser/mod.rs +0 -0
  359. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/std_error.rs +0 -0
  360. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/integer128.rs +0 -0
  361. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/private/de.rs +0 -0
  362. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/private/mod.rs +0 -0
  363. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/private/ser.rs +0 -0
  364. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/LICENSE-APACHE +0 -0
  365. /data/ext/cargo-vendor/{serde-1.0.228 → serde_core-1.0.229}/LICENSE-MIT +0 -0
  366. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/README.md +0 -0
  367. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/crate_root.rs +0 -0
  368. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/de/ignored_any.rs +0 -0
  369. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/de/mod.rs +0 -0
  370. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/de/value.rs +0 -0
  371. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/format.rs +0 -0
  372. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/macros.rs +0 -0
  373. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/content.rs +0 -0
  374. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/doc.rs +0 -0
  375. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/mod.rs +0 -0
  376. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/seed.rs +0 -0
  377. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/size_hint.rs +0 -0
  378. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/string.rs +0 -0
  379. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/ser/fmt.rs +0 -0
  380. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/ser/impls.rs +0 -0
  381. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/ser/impossible.rs +0 -0
  382. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/ser/mod.rs +0 -0
  383. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/std_error.rs +0 -0
  384. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/LICENSE-APACHE +0 -0
  385. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_derive-1.0.229}/LICENSE-MIT +0 -0
  386. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/crates-io.md +0 -0
  387. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/enum_.rs +0 -0
  388. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/enum_internally.rs +0 -0
  389. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/enum_untagged.rs +0 -0
  390. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/identifier.rs +0 -0
  391. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/struct_.rs +0 -0
  392. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/tuple.rs +0 -0
  393. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/unit.rs +0 -0
  394. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/deprecated.rs +0 -0
  395. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/dummy.rs +0 -0
  396. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/fragment.rs +0 -0
  397. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/case.rs +0 -0
  398. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/check.rs +0 -0
  399. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/mod.rs +0 -0
  400. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/name.rs +0 -0
  401. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/respan.rs +0 -0
  402. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/symbol.rs +0 -0
  403. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/this.rs +0 -0
  404. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/LICENSE +0 -0
  405. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/array_deserializer.rs +0 -0
  406. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/array_enumerator.rs +0 -0
  407. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/enum_deserializer.rs +0 -0
  408. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/hash_deserializer.rs +0 -0
  409. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/mod.rs +0 -0
  410. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/variant_deserializer.rs +0 -0
  411. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/error.rs +0 -0
  412. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/lib.rs +0 -0
  413. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/enums.rs +0 -0
  414. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/map_serializer.rs +0 -0
  415. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/mod.rs +0 -0
  416. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/seq_serializer.rs +0 -0
  417. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/serializer.rs +0 -0
  418. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/struct_serializer.rs +0 -0
  419. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/struct_variant_serializer.rs +0 -0
  420. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/tuple_variant_serializer.rs +0 -0
  421. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_arrays.rs +0 -0
  422. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_booleans.rs +0 -0
  423. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_enums.rs +0 -0
  424. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_floats.rs +0 -0
  425. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_integers.rs +0 -0
  426. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_maps.rs +0 -0
  427. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_options.rs +0 -0
  428. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_results.rs +0 -0
  429. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_strings.rs +0 -0
  430. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_structs.rs +0 -0
  431. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_tuples.rs +0 -0
  432. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_vecs.rs +0 -0
  433. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_arrays.rs +0 -0
  434. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_booleans.rs +0 -0
  435. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_enums.rs +0 -0
  436. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_floats.rs +0 -0
  437. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_integers.rs +0 -0
  438. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_maps.rs +0 -0
  439. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_options.rs +0 -0
  440. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_results.rs +0 -0
  441. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_strings.rs +0 -0
  442. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_structs.rs +0 -0
  443. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_tuples.rs +0 -0
  444. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_vecs.rs +0 -0
  445. /data/ext/cargo-vendor/{serde_derive-1.0.228 → syn-3.0.9}/LICENSE-MIT +0 -0
@@ -0,0 +1,701 @@
1
+ //! Implementation of Ruby macros.
2
+ //!
3
+ //! Since macros are rely on the C preprocessor, or defined as `inline` C
4
+ //! functions, they are not available when linking libruby. In order to use the
5
+ //! libruby macros from Rust, `rb-sys` implements them using the following
6
+ //! strategies:
7
+ //!
8
+ //! 1. For stable versions of Ruby, the macros are implemented as Rust functions
9
+ //! 2. For ruby-head, the macros are implemented as C functions that are linked
10
+ //! into the crate.
11
+
12
+ #![allow(rustdoc::broken_intra_doc_links)]
13
+ #![allow(non_upper_case_globals)]
14
+ #![allow(non_snake_case)]
15
+
16
+ use crate::rb_data_type_t;
17
+ use crate::ruby_value_type;
18
+ use crate::stable_api::get_default as api;
19
+ use crate::StableApiDefinition;
20
+ use crate::VALUE;
21
+ use std::ffi::c_void;
22
+ use std::os::raw::{c_char, c_long};
23
+
24
+ /// Emulates Ruby's "if" statement.
25
+ ///
26
+ /// - @param[in] obj An arbitrary ruby object.
27
+ /// - @retval false `obj` is either ::RUBY_Qfalse or ::RUBY_Qnil.
28
+ /// - @retval true Anything else.
29
+ ///
30
+ /// ```
31
+ /// use rb_sys::special_consts::*;
32
+ ///
33
+ /// assert!(!TEST(Qfalse));
34
+ /// assert!(!TEST(Qnil));
35
+ /// assert!(TEST(Qtrue));
36
+ /// ```
37
+ #[inline(always)]
38
+ pub fn TEST(obj: VALUE) -> bool {
39
+ api().rb_test(obj)
40
+ }
41
+
42
+ /// Checks if the given object is nil.
43
+ ///
44
+ /// - @param[in] obj An arbitrary ruby object.
45
+ /// - @retval true `obj` is ::RUBY_Qnil.
46
+ /// - @retval false Anything else.
47
+ ///
48
+ /// ### Example
49
+ ///
50
+ /// ```
51
+ /// use rb_sys::special_consts::*;
52
+ ///
53
+ /// assert!(NIL_P(Qnil));
54
+ /// assert!(!NIL_P(Qtrue));
55
+ /// ```
56
+ #[inline(always)]
57
+ pub fn NIL_P(obj: VALUE) -> bool {
58
+ api().nil_p(obj)
59
+ }
60
+
61
+ /// Checks if the given object is a so-called Fixnum.
62
+ ///
63
+ /// - @param[in] obj An arbitrary ruby object.
64
+ /// - @retval true `obj` is a Fixnum.
65
+ /// - @retval false Anything else.
66
+ /// - @note Fixnum was a thing in the 20th century, but it is rather an implementation detail today.
67
+ #[inline(always)]
68
+ pub fn FIXNUM_P(obj: VALUE) -> bool {
69
+ api().fixnum_p(obj)
70
+ }
71
+
72
+ /// Checks if the given object is a static symbol.
73
+ ///
74
+ /// - @param[in] obj An arbitrary ruby object.
75
+ /// - @retval true `obj` is a static symbol
76
+ /// - @retval false Anything else.
77
+ /// - @see RB_DYNAMIC_SYM_P()
78
+ /// - @see RB_SYMBOL_P()
79
+ /// - @note These days there are static and dynamic symbols, just like we once had Fixnum/Bignum back in the old days.
80
+ #[inline(always)]
81
+ pub fn STATIC_SYM_P(obj: VALUE) -> bool {
82
+ api().static_sym_p(obj)
83
+ }
84
+
85
+ /// Get the backend storage of a Ruby array.
86
+ ///
87
+ /// ### Safety
88
+ ///
89
+ /// This function is unsafe because it dereferences a raw pointer and returns
90
+ /// raw pointers to Ruby memory. The caller must ensure that the pointer stays live
91
+ /// for the duration of usage the the underlying array (by either GC marking or
92
+ /// keeping the RArray on the stack).
93
+ ///
94
+ /// - @param[in] a An object of ::RArray.
95
+ /// - @return Its backend storage.
96
+ #[inline(always)]
97
+ pub unsafe fn RARRAY_CONST_PTR(obj: VALUE) -> *const VALUE {
98
+ api().rarray_const_ptr(obj)
99
+ }
100
+
101
+ /// Get the length of a Ruby array.
102
+ ///
103
+ /// ### Safety
104
+ ///
105
+ /// This function is unsafe because it dereferences a raw pointer in order to
106
+ /// access internal Ruby memory.
107
+ ///
108
+ /// - @param[in] a An object of ::RArray.
109
+ /// - @return Its length.
110
+ #[inline(always)]
111
+ pub unsafe fn RARRAY_LEN(obj: VALUE) -> c_long {
112
+ api().rarray_len(obj)
113
+ }
114
+
115
+ /// Read array element at index (akin to `RARRAY_AREF`).
116
+ ///
117
+ /// ### Safety
118
+ ///
119
+ /// This function is unsafe because it dereferences a raw pointer in order to
120
+ /// access internal Ruby memory.
121
+ ///
122
+ /// - @param[in] obj An object of ::RArray.
123
+ /// - @param[in] idx Index within the array (must be within bounds: 0..RARRAY_LEN(obj)).
124
+ /// - @return The element at the given index.
125
+ #[inline(always)]
126
+ pub unsafe fn RARRAY_AREF(obj: VALUE, idx: isize) -> VALUE {
127
+ api().rarray_aref(obj.into(), idx)
128
+ }
129
+
130
+ /// Write array element at index (akin to `RARRAY_ASET`).
131
+ ///
132
+ /// This function includes the GC write barrier for correctness.
133
+ ///
134
+ /// ### Safety
135
+ ///
136
+ /// This function is unsafe because it dereferences a raw pointer in order to
137
+ /// access internal Ruby memory.
138
+ ///
139
+ /// - @param[in] obj An object of ::RArray.
140
+ /// - @param[in] idx Index within the array (must be within bounds: 0..RARRAY_LEN(obj)).
141
+ /// - @param[in] val The value to set at the given index.
142
+ #[inline(always)]
143
+ pub unsafe fn RARRAY_ASET(obj: VALUE, idx: isize, val: VALUE) {
144
+ api().rarray_aset(obj.into(), idx, val)
145
+ }
146
+
147
+ /// Get the length of a Ruby string.
148
+ ///
149
+ /// ### Safety
150
+ ///
151
+ /// This function is unsafe because it dereferences a raw pointer in order to
152
+ /// access internal Ruby memory.
153
+ ///
154
+ /// - @param[in] a An object of ::RString.
155
+ /// - @return Its length.
156
+ #[inline(always)]
157
+ pub unsafe fn RSTRING_LEN(obj: VALUE) -> c_long {
158
+ api().rstring_len(obj)
159
+ }
160
+
161
+ /// Get the backend storage of a Ruby string.
162
+ ///
163
+ /// ### Safety
164
+ ///
165
+ /// This function is unsafe because it dereferences a raw pointer and returns
166
+ /// raw pointers to Ruby memory. The caller must ensure that the pointer stays live
167
+ /// for the duration of usage the the underlying array (by either GC marking or
168
+ /// keeping the RArray on the stack).
169
+ ///
170
+ /// - @param[in] a An object of ::RString.
171
+ /// - @return Its backend storage
172
+ #[inline(always)]
173
+ pub unsafe fn RSTRING_PTR(obj: VALUE) -> *const c_char {
174
+ api().rstring_ptr(obj)
175
+ }
176
+
177
+ /// Checks if the given object is a so-called Flonum.
178
+ ///
179
+ /// @param[in] obj An arbitrary ruby object.
180
+ /// @retval true `obj` is a Flonum.
181
+ /// @retval false Anything else.
182
+ /// @see RB_FLOAT_TYPE_P()
183
+ /// @note These days there are Flonums and non-Flonum floats, just like we
184
+ /// once had Fixnum/Bignum back in the old days.
185
+ #[inline(always)]
186
+ pub fn FLONUM_P(obj: VALUE) -> bool {
187
+ api().flonum_p(obj)
188
+ }
189
+
190
+ /// Checks if the given object is an immediate i.e. an object which has no
191
+ /// corresponding storage inside of the object space.
192
+ ///
193
+ /// @param[in] obj An arbitrary ruby object.
194
+ /// @retval true `obj` is a Flonum.
195
+ /// @retval false Anything else.
196
+ /// @see RB_FLOAT_TYPE_P()
197
+ /// @note The concept of "immediate" is purely C specific.
198
+ #[inline(always)]
199
+ pub fn IMMEDIATE_P(obj: VALUE) -> bool {
200
+ api().immediate_p(obj)
201
+ }
202
+
203
+ /// Checks if the given object is of enum ::ruby_special_consts.
204
+ ///
205
+ /// @param[in] obj An arbitrary ruby object.
206
+ /// @retval true `obj` is a special constant.
207
+ /// @retval false Anything else.
208
+ ///
209
+ /// ### Example
210
+ ///
211
+ /// ```
212
+ /// use rb_sys::special_consts::*;
213
+ ///
214
+ /// assert!(SPECIAL_CONST_P(Qnil));
215
+ /// assert!(SPECIAL_CONST_P(Qtrue));
216
+ /// assert!(SPECIAL_CONST_P(Qfalse));
217
+ /// ```
218
+ #[inline(always)]
219
+ pub fn SPECIAL_CONST_P(obj: VALUE) -> bool {
220
+ api().special_const_p(obj)
221
+ }
222
+
223
+ /// Queries the type of the object.
224
+ ///
225
+ /// @param[in] obj Object in question.
226
+ /// @pre `obj` must not be a special constant.
227
+ /// @return The type of `obj`.
228
+ ///
229
+ /// # Safety
230
+ /// This function is unsafe because it could dereference a raw pointer when
231
+ /// attemping to access the underlying [`RBasic`] struct.
232
+ #[inline(always)]
233
+ pub unsafe fn RB_BUILTIN_TYPE(obj: VALUE) -> ruby_value_type {
234
+ api().builtin_type(obj)
235
+ }
236
+
237
+ /// Queries if the object is an instance of ::rb_cInteger.
238
+ ///
239
+ /// @param[in] obj Object in question.
240
+ /// @retval true It is.
241
+ /// @retval false It isn't.
242
+ ///
243
+ /// # Safety
244
+ /// This function is unsafe because it could dereference a raw pointer when
245
+ /// attemping to access the underlying [`RBasic`] struct.
246
+ #[inline(always)]
247
+ pub unsafe fn RB_INTEGER_TYPE_P(obj: VALUE) -> bool {
248
+ api().integer_type_p(obj)
249
+ }
250
+
251
+ /// Queries if the object is a dynamic symbol.
252
+ ///
253
+ /// @param[in] obj Object in question.
254
+ /// @retval true It is.
255
+ /// @retval false It isn't.
256
+ ///
257
+ /// # Safety
258
+ /// This function is unsafe because it could dereference a raw pointer when
259
+ /// attemping to access the underlying [`RBasic`] struct.
260
+ #[inline(always)]
261
+ pub unsafe fn RB_DYNAMIC_SYM_P(obj: VALUE) -> bool {
262
+ api().dynamic_sym_p(obj)
263
+ }
264
+
265
+ /// Queries if the object is an instance of ::rb_cSymbol.
266
+ ///
267
+ /// @param[in] obj Object in question.
268
+ /// @retval true It is.
269
+ /// @retval false It isn't.
270
+ ///
271
+ /// # Safety
272
+ /// This function is unsafe because it could dereference a raw pointer when
273
+ /// attemping to access the underlying [`RBasic`] struct.
274
+ #[inline(always)]
275
+ pub unsafe fn RB_SYMBOL_P(obj: VALUE) -> bool {
276
+ api().symbol_p(obj)
277
+ }
278
+
279
+ /// Identical to RB_BUILTIN_TYPE(), except it can also accept special constants.
280
+ ///
281
+ /// @param[in] obj Object in question.
282
+ /// @return The type of `obj`.
283
+ ///
284
+ /// # Safety
285
+ /// This function is unsafe because it could dereference a raw pointer when
286
+ /// attemping to access the underlying [`RBasic`] struct.
287
+ #[inline(always)]
288
+ pub unsafe fn RB_TYPE(value: VALUE) -> ruby_value_type {
289
+ api().rb_type(value)
290
+ }
291
+
292
+ /// Queries if the given object is of given type.
293
+ ///
294
+ /// @param[in] obj An object.
295
+ /// @param[in] t A type.
296
+ /// @retval true `obj` is of type `t`.
297
+ /// @retval false Otherwise.
298
+ ///
299
+ /// # Safety
300
+ /// This function is unsafe because it could dereference a raw pointer when
301
+ /// attemping to access the underlying [`RBasic`] struct.
302
+ #[inline(always)]
303
+ #[cfg(ruby_engine = "mri")] // truffleruby provides its own implementation
304
+ pub unsafe fn RB_TYPE_P(obj: VALUE, ty: ruby_value_type) -> bool {
305
+ api().type_p(obj, ty)
306
+ }
307
+
308
+ /// Queries if the object is an instance of ::rb_cFloat.
309
+ ///
310
+ /// @param[in] obj Object in question.
311
+ /// @retval true It is.
312
+ /// @retval false It isn't.
313
+ ///
314
+ /// # Safety
315
+ /// This function is unsafe because it could dereference a raw pointer when
316
+ /// attemping to access the underlying [`RBasic`] struct.
317
+ #[inline(always)]
318
+ pub unsafe fn RB_FLOAT_TYPE_P(obj: VALUE) -> bool {
319
+ api().float_type_p(obj)
320
+ }
321
+
322
+ /// Checks if the given object is an RTypedData.
323
+ ///
324
+ /// @param[in] obj Object in question.
325
+ /// @retval true It is an RTypedData.
326
+ /// @retval false It isn't an RTypedData.
327
+ ///
328
+ /// # Safety
329
+ /// This function is unsafe because it could dereference a raw pointer when
330
+ /// accessing the underlying data structure.
331
+ #[inline(always)]
332
+ pub unsafe fn RTYPEDDATA_P(obj: VALUE) -> bool {
333
+ api().rtypeddata_p(obj)
334
+ }
335
+
336
+ /// Gets the data type information from an RTypedData object.
337
+ ///
338
+ /// @param[in] obj An RTypedData object.
339
+ /// @return Pointer to the rb_data_type_t structure for this object.
340
+ ///
341
+ /// # Safety
342
+ /// This function is unsafe because it dereferences a raw pointer to get
343
+ /// access to the underlying data type. The caller must ensure the object
344
+ /// is a valid RTypedData.
345
+ #[inline(always)]
346
+ pub unsafe fn RTYPEDDATA_TYPE(obj: VALUE) -> *const rb_data_type_t {
347
+ api().rtypeddata_type(obj)
348
+ }
349
+
350
+ /// Gets the data pointer from an RTypedData object.
351
+ ///
352
+ /// @param[in] obj An RTypedData object.
353
+ /// @return Pointer to the wrapped C struct.
354
+ ///
355
+ /// # Safety
356
+ /// This function is unsafe because it dereferences a raw pointer to get
357
+ /// access to the underlying data. The caller must ensure the object
358
+ /// is a valid RTypedData.
359
+ #[inline(always)]
360
+ pub unsafe fn RTYPEDDATA_GET_DATA(obj: VALUE) -> *mut c_void {
361
+ api().rtypeddata_get_data(obj)
362
+ }
363
+
364
+ /// Checks if the bignum is positive.
365
+ ///
366
+ /// @param[in] b An object of RBignum.
367
+ /// @retval false `b` is less than zero.
368
+ /// @retval true Otherwise.
369
+ ///
370
+ /// # Safety
371
+ /// This function is unsafe because it could dereference a raw pointer when
372
+ /// accessing the underlying bignum structure.
373
+ #[inline(always)]
374
+ pub unsafe fn RBIGNUM_POSITIVE_P(b: VALUE) -> bool {
375
+ api().bignum_positive_p(b)
376
+ }
377
+
378
+ /// Checks if the bignum is negative.
379
+ ///
380
+ /// @param[in] b An object of RBignum.
381
+ /// @retval true `b` is less than zero.
382
+ /// @retval false Otherwise.
383
+ ///
384
+ /// # Safety
385
+ /// This function is unsafe because it could dereference a raw pointer when
386
+ /// accessing the underlying bignum structure.
387
+ #[inline(always)]
388
+ pub unsafe fn RBIGNUM_NEGATIVE_P(b: VALUE) -> bool {
389
+ api().bignum_negative_p(b)
390
+ }
391
+
392
+ /// Convert ID to Symbol (akin to `ID2SYM` or `RB_ID2SYM`).
393
+ ///
394
+ /// Converts an internal ID to its corresponding Symbol VALUE.
395
+ /// This is a safe operation - just bit manipulation for static symbols.
396
+ ///
397
+ /// @param[in] id An ID value.
398
+ /// @return The Symbol VALUE corresponding to the ID.
399
+ #[inline(always)]
400
+ pub fn ID2SYM(id: crate::ID) -> VALUE {
401
+ api().id2sym(id)
402
+ }
403
+
404
+ /// Alias for ID2SYM for compatibility with Ruby naming conventions.
405
+ #[inline(always)]
406
+ pub fn RB_ID2SYM(id: crate::ID) -> VALUE {
407
+ api().id2sym(id)
408
+ }
409
+
410
+ /// Convert Symbol to ID (akin to `SYM2ID` or `RB_SYM2ID`).
411
+ ///
412
+ /// Converts a Symbol VALUE to its internal ID representation.
413
+ ///
414
+ /// @param[in] obj A Symbol VALUE.
415
+ /// @return The ID corresponding to the Symbol.
416
+ ///
417
+ /// # Safety
418
+ /// - `obj` must be a valid Symbol VALUE
419
+ /// - For dynamic symbols, this may access the heap
420
+ #[inline(always)]
421
+ pub unsafe fn SYM2ID(obj: VALUE) -> crate::ID {
422
+ api().sym2id(obj)
423
+ }
424
+
425
+ /// Alias for SYM2ID for compatibility with Ruby naming conventions.
426
+ ///
427
+ /// # Safety
428
+ /// - `obj` must be a valid Symbol VALUE
429
+ /// - For dynamic symbols, this may access the heap
430
+ #[inline(always)]
431
+ pub unsafe fn RB_SYM2ID(obj: VALUE) -> crate::ID {
432
+ api().sym2id(obj)
433
+ }
434
+
435
+ /// Convert Fixnum to long (akin to `FIX2LONG`).
436
+ ///
437
+ /// Extracts the integer value from a Fixnum VALUE by performing an arithmetic right shift.
438
+ ///
439
+ /// # Safety
440
+ /// - `obj` must be a valid Fixnum VALUE (checked with FIXNUM_P)
441
+ /// - Behavior is undefined if called on non-Fixnum values
442
+ #[inline(always)]
443
+ pub unsafe fn FIX2LONG(obj: VALUE) -> std::os::raw::c_long {
444
+ api().fix2long(obj)
445
+ }
446
+
447
+ /// Convert Fixnum to unsigned long (akin to `FIX2ULONG`).
448
+ ///
449
+ /// Extracts the unsigned integer value from a Fixnum VALUE.
450
+ ///
451
+ /// # Safety
452
+ /// - `obj` must be a valid positive Fixnum VALUE
453
+ /// - Behavior is undefined for negative fixnums
454
+ #[inline(always)]
455
+ pub unsafe fn FIX2ULONG(obj: VALUE) -> std::os::raw::c_ulong {
456
+ api().fix2ulong(obj)
457
+ }
458
+
459
+ /// Convert long to Fixnum (akin to `LONG2FIX`).
460
+ ///
461
+ /// Creates a Fixnum VALUE from a long integer.
462
+ ///
463
+ /// # Safety
464
+ /// - `val` must be within the valid Fixnum range (use FIXABLE to check)
465
+ /// - Behavior is undefined if value is out of range
466
+ #[inline(always)]
467
+ pub unsafe fn LONG2FIX(val: std::os::raw::c_long) -> VALUE {
468
+ api().long2fix(val)
469
+ }
470
+
471
+ /// Check if long value can be represented as Fixnum (akin to `FIXABLE`).
472
+ ///
473
+ /// Returns true if the value fits within the Fixnum range.
474
+ #[inline(always)]
475
+ pub fn FIXABLE(val: std::os::raw::c_long) -> bool {
476
+ api().fixable(val)
477
+ }
478
+
479
+ /// Check if unsigned long value can be represented as positive Fixnum (akin to `POSFIXABLE`).
480
+ ///
481
+ /// Returns true if the unsigned value fits within the positive Fixnum range.
482
+ #[inline(always)]
483
+ pub fn POSFIXABLE(val: std::os::raw::c_ulong) -> bool {
484
+ api().posfixable(val)
485
+ }
486
+
487
+ /// Convert Ruby Integer to long (akin to `NUM2LONG`).
488
+ ///
489
+ /// Converts any Ruby Integer (Fixnum or Bignum) to a C long.
490
+ /// May raise a RangeError exception if the value is out of range.
491
+ ///
492
+ /// # Safety
493
+ /// - `obj` must be a valid Integer VALUE
494
+ /// - May call into Ruby runtime and potentially raise exceptions
495
+ /// - May trigger garbage collection
496
+ #[inline(always)]
497
+ pub unsafe fn NUM2LONG(obj: VALUE) -> std::os::raw::c_long {
498
+ api().num2long(obj)
499
+ }
500
+
501
+ /// Convert Ruby Integer to unsigned long (akin to `NUM2ULONG`).
502
+ ///
503
+ /// Converts any Ruby Integer (Fixnum or Bignum) to a C unsigned long.
504
+ /// May raise a RangeError exception if the value is out of range or negative.
505
+ ///
506
+ /// # Safety
507
+ /// - `obj` must be a valid Integer VALUE
508
+ /// - May call into Ruby runtime and potentially raise exceptions
509
+ /// - May trigger garbage collection
510
+ #[inline(always)]
511
+ pub unsafe fn NUM2ULONG(obj: VALUE) -> std::os::raw::c_ulong {
512
+ api().num2ulong(obj)
513
+ }
514
+
515
+ /// Convert long to Ruby Integer (akin to `LONG2NUM`).
516
+ ///
517
+ /// Creates a Ruby Integer (Fixnum or Bignum) from a C long.
518
+ /// Uses Fixnum if possible, otherwise allocates a Bignum.
519
+ #[inline(always)]
520
+ pub fn LONG2NUM(val: std::os::raw::c_long) -> VALUE {
521
+ api().long2num(val)
522
+ }
523
+
524
+ /// Convert unsigned long to Ruby Integer (akin to `ULONG2NUM`).
525
+ ///
526
+ /// Creates a Ruby Integer (Fixnum or Bignum) from a C unsigned long.
527
+ /// Uses Fixnum if possible, otherwise allocates a Bignum.
528
+ #[inline(always)]
529
+ pub fn ULONG2NUM(val: std::os::raw::c_ulong) -> VALUE {
530
+ api().ulong2num(val)
531
+ }
532
+
533
+ /// Execute GC write barrier when storing a reference (akin to `RB_OBJ_WRITE`).
534
+ ///
535
+ /// Writes `young` into `*slot` and notifies the GC so generational/incremental
536
+ /// collection stays correct. Without this, the GC may collect objects that are
537
+ /// still referenced.
538
+ ///
539
+ /// @param[in] old The object being modified (must be heap-allocated).
540
+ /// @param[in] slot Pointer to the VALUE slot within `old` being written to.
541
+ /// @param[in] young The VALUE being stored.
542
+ /// @return `old` — matches CRuby's `RB_OBJ_WRITE` semantics.
543
+ ///
544
+ /// # Safety
545
+ /// - `old` must be a valid heap-allocated Ruby object
546
+ /// - `slot` must be a valid pointer to a VALUE within `old`
547
+ /// - `young` must be a valid VALUE
548
+ #[inline(always)]
549
+ pub unsafe fn RB_OBJ_WRITE(old: VALUE, slot: *mut VALUE, young: VALUE) -> VALUE {
550
+ api().rb_obj_write(old, slot, young)
551
+ }
552
+
553
+ /// Declare a write barrier without actually writing (akin to `RB_OBJ_WRITTEN`).
554
+ ///
555
+ /// Use this when you've already written a reference but need to inform the GC.
556
+ /// This is useful when the write happens through a different mechanism but
557
+ /// the GC still needs to be notified.
558
+ ///
559
+ /// @param[in] old The object being modified (must be heap-allocated).
560
+ /// @param[in] oldv The previous value (can be any VALUE).
561
+ /// @param[in] young The VALUE that was written.
562
+ /// @return `old` — matches CRuby's `RB_OBJ_WRITTEN` semantics.
563
+ ///
564
+ /// # Safety
565
+ /// - `old` must be a valid heap-allocated Ruby object
566
+ /// - `oldv` is the previous value (can be any VALUE)
567
+ /// - `young` must be a valid VALUE that was written
568
+ #[inline(always)]
569
+ pub unsafe fn RB_OBJ_WRITTEN(old: VALUE, oldv: VALUE, young: VALUE) -> VALUE {
570
+ api().rb_obj_written(old, oldv, young)
571
+ }
572
+
573
+ /// Check if an object can have flags (akin to `RB_FL_ABLE`).
574
+ ///
575
+ /// Returns false for immediate values (nil, true, false, Fixnum, Symbol, Flonum).
576
+ /// Returns true for heap-allocated objects that can have flags set.
577
+ ///
578
+ /// @param[in] obj An object to check.
579
+ /// @retval true The object can have flags.
580
+ /// @retval false The object is an immediate value.
581
+ #[inline(always)]
582
+ pub fn FL_ABLE(obj: VALUE) -> bool {
583
+ api().fl_able(obj)
584
+ }
585
+
586
+ /// Get pointer to end of string contents (akin to `RSTRING_END`).
587
+ ///
588
+ /// # Safety
589
+ /// - `obj` must be a valid Ruby String object
590
+ #[inline(always)]
591
+ pub unsafe fn RSTRING_END(obj: VALUE) -> *const c_char {
592
+ api().rstring_end(obj)
593
+ }
594
+
595
+ /// Get data pointer from RData/TypedData object (akin to `DATA_PTR`).
596
+ ///
597
+ /// # Safety
598
+ /// - `obj` must be a valid RData or TypedData object
599
+ #[inline(always)]
600
+ pub unsafe fn DATA_PTR(obj: VALUE) -> *mut c_void {
601
+ api().rdata_ptr(obj)
602
+ }
603
+
604
+ /// Freeze an object (akin to `RB_OBJ_FREEZE`).
605
+ ///
606
+ /// # Safety
607
+ /// - `obj` must be a valid heap-allocated Ruby object
608
+ #[inline(always)]
609
+ pub unsafe fn RB_OBJ_FREEZE(obj: VALUE) {
610
+ api().rb_obj_freeze(obj)
611
+ }
612
+
613
+ /// Check if object is promoted to old GC generation (akin to `RB_OBJ_PROMOTED`).
614
+ ///
615
+ /// # Safety
616
+ /// - `obj` must be a valid VALUE
617
+ #[inline(always)]
618
+ pub unsafe fn RB_OBJ_PROMOTED(obj: VALUE) -> bool {
619
+ api().rb_obj_promoted(obj)
620
+ }
621
+
622
+ /// Raw version assuming FL_ABLE (akin to `RB_OBJ_PROMOTED_RAW`).
623
+ ///
624
+ /// # Safety
625
+ /// - `obj` must be a valid heap-allocated Ruby object (FL_ABLE must be true)
626
+ #[inline(always)]
627
+ pub unsafe fn RB_OBJ_PROMOTED_RAW(obj: VALUE) -> bool {
628
+ api().rb_obj_promoted_raw(obj)
629
+ }
630
+
631
+ /// Convert Ruby numeric to C double (akin to `NUM2DBL`).
632
+ ///
633
+ /// Works for Float (including Flonum), Fixnum, and other numeric types.
634
+ ///
635
+ /// @param[in] obj A Ruby numeric object.
636
+ /// @return C double representation.
637
+ ///
638
+ /// # Safety
639
+ /// This function is unsafe because it may dereference a raw pointer to access
640
+ /// underlying Ruby data. The caller must ensure the VALUE is a valid Ruby numeric.
641
+ #[inline(always)]
642
+ pub unsafe fn NUM2DBL(obj: VALUE) -> std::os::raw::c_double {
643
+ api().num2dbl(obj)
644
+ }
645
+
646
+ /// Convert C double to Ruby Float VALUE (akin to `DBL2NUM`).
647
+ ///
648
+ /// May return a Flonum (tagged pointer) for small values on 64-bit platforms,
649
+ /// or a heap-allocated Float object.
650
+ ///
651
+ /// @param[in] val A C double value.
652
+ /// @return A Ruby Float VALUE.
653
+ #[inline(always)]
654
+ pub fn DBL2NUM(val: std::os::raw::c_double) -> VALUE {
655
+ api().dbl2num(val)
656
+ }
657
+
658
+ /// Get hash size (akin to `RHASH_SIZE`).
659
+ ///
660
+ /// Returns the number of entries in the hash.
661
+ ///
662
+ /// @param[in] obj A Ruby Hash object.
663
+ /// @return Number of entries.
664
+ ///
665
+ /// # Safety
666
+ /// This function is unsafe because it dereferences a raw pointer to access
667
+ /// underlying Ruby data. The caller must ensure the VALUE is a valid Hash.
668
+ #[inline(always)]
669
+ pub unsafe fn RHASH_SIZE(obj: VALUE) -> usize {
670
+ api().rhash_size(obj)
671
+ }
672
+
673
+ /// Check if hash is empty (akin to `RHASH_EMPTY_P`).
674
+ ///
675
+ /// @param[in] obj A Ruby Hash object.
676
+ /// @retval true The hash has no entries.
677
+ /// @retval false The hash has at least one entry.
678
+ ///
679
+ /// # Safety
680
+ /// This function is unsafe because it dereferences a raw pointer to access
681
+ /// underlying Ruby data. The caller must ensure the VALUE is a valid Hash.
682
+ #[inline(always)]
683
+ pub unsafe fn RHASH_EMPTY_P(obj: VALUE) -> bool {
684
+ api().rhash_empty_p(obj)
685
+ }
686
+
687
+ /// Get encoding index from object (akin to `ENCODING_GET`).
688
+ ///
689
+ /// Returns the encoding index stored in the object's flags.
690
+ ///
691
+ /// @param[in] obj A Ruby object with encoding (String, Regexp, Symbol).
692
+ /// @return Encoding index.
693
+ ///
694
+ /// # Safety
695
+ /// This function is unsafe because it dereferences a raw pointer to access
696
+ /// the RBasic flags. The caller must ensure the VALUE is a valid object
697
+ /// with encoding support.
698
+ #[inline(always)]
699
+ pub unsafe fn ENCODING_GET(obj: VALUE) -> std::os::raw::c_int {
700
+ api().encoding_get(obj)
701
+ }