code_ownership 2.1.0 → 2.1.2

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 (410) hide show
  1. checksums.yaml +4 -4
  2. data/.cargo/config +2 -2
  3. data/Cargo.lock +10 -16
  4. data/README.md +8 -8
  5. data/ext/cargo-vendor/codeowners-0.3.2/.cargo-checksum.json +1 -0
  6. data/ext/cargo-vendor/codeowners-0.3.2/.github/CODEOWNERS +1 -0
  7. data/ext/cargo-vendor/codeowners-0.3.2/AGENTS.md +38 -0
  8. data/ext/cargo-vendor/codeowners-0.3.2/CLAUDE.md +1 -0
  9. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/Cargo.lock +1 -1
  10. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/Cargo.toml +17 -1
  11. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/README.md +11 -1
  12. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/cli.rs +9 -5
  13. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/config.rs +81 -1
  14. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/crosscheck.rs +5 -8
  15. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/codeowners_file_parser.rs +3 -3
  16. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/file_owner_resolver.rs +3 -1
  17. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/package_mapper.rs +2 -2
  18. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper.rs +2 -2
  19. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/validator.rs +15 -10
  20. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership.rs +1 -0
  21. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/project.rs +3 -0
  22. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/project_builder.rs +111 -44
  23. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/runner/api.rs +7 -6
  24. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/runner/types.rs +2 -1
  25. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/runner.rs +67 -16
  26. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/tracked_files.rs +29 -1
  27. data/ext/cargo-vendor/codeowners-0.3.2/tests/codeowners_path_test.rs +92 -0
  28. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/common/mod.rs +2 -1
  29. data/ext/cargo-vendor/codeowners-0.3.2/tests/executable_name_config_test.rs +67 -0
  30. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_codeowners_path/config/code_ownership.yml +11 -0
  31. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_codeowners_path/config/teams/test_team.yml +6 -0
  32. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_codeowners_path/docs/CODEOWNERS +14 -0
  33. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_codeowners_path/expected/CODEOWNERS +14 -0
  34. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_codeowners_path/ruby/app/models/test.rb +3 -0
  35. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_executable_name/.github/CODEOWNERS +10 -0
  36. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_executable_name/app/foo.rb +3 -0
  37. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_executable_name/config/code_ownership.yml +4 -0
  38. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_executable_name/config/teams/foo.yml +5 -0
  39. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_executable_name/config/teams/payments.yml +6 -0
  40. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/custom_executable_name/ruby/app/payments/foo.rb +4 -0
  41. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/default_executable_name/.github/CODEOWNERS +11 -0
  42. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/default_executable_name/app/bar.rb +3 -0
  43. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/default_executable_name/config/code_ownership.yml +5 -0
  44. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/default_executable_name/config/teams/bar.yml +5 -0
  45. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/missing_github_team/.github/CODEOWNERS +10 -0
  46. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/missing_github_team/config/code_ownership.yml +10 -0
  47. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/missing_github_team/config/teams/bad_team.yml +1 -0
  48. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/missing_github_team/config/teams/good.yml +3 -0
  49. data/ext/cargo-vendor/codeowners-0.3.2/tests/fixtures/valid_project/gems/pets/dog.rb +5 -0
  50. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/git_stage_test.rs +4 -1
  51. data/ext/cargo-vendor/codeowners-0.3.2/tests/missing_github_team_test.rs +23 -0
  52. data/ext/cargo-vendor/codeowners-0.3.2/tests/run_config_executable_override_test.rs +98 -0
  53. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/runner_api.rs +8 -4
  54. data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/valid_project_test.rs +3 -3
  55. data/ext/cargo-vendor/codeowners-0.3.2/tests/validate_files_test.rs +378 -0
  56. data/ext/cargo-vendor/magnus-0.8.2/.cargo-checksum.json +1 -0
  57. data/ext/cargo-vendor/magnus-0.8.2/.cargo_vcs_info.json +6 -0
  58. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/CHANGELOG.md +66 -1
  59. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/Cargo.lock +243 -9
  60. data/ext/cargo-vendor/magnus-0.8.2/Cargo.toml +277 -0
  61. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/Cargo.toml.orig +11 -6
  62. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/README.md +75 -23
  63. data/ext/cargo-vendor/magnus-0.8.2/build.rs +15 -0
  64. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/complete_object/test/temperature_test.rb +4 -4
  65. data/ext/cargo-vendor/magnus-0.8.2/examples/inheritance.rs +66 -0
  66. data/ext/cargo-vendor/magnus-0.8.2/examples/mut_point.rs +116 -0
  67. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/api.rs +4 -3
  68. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/class.rs +9 -7
  69. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/encoding.rs +5 -5
  70. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/error.rs +12 -3
  71. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/fiber.rs +5 -5
  72. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/gc.rs +3 -3
  73. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/integer.rs +134 -0
  74. data/ext/cargo-vendor/magnus-0.8.2/src/io.rs +230 -0
  75. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/lib.rs +53 -54
  76. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/macros.rs +2 -2
  77. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/method.rs +14 -100
  78. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/module.rs +1 -1
  79. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/mutex.rs +1 -1
  80. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_array.rs +2 -2
  81. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_bignum.rs +100 -3
  82. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_hash.rs +63 -1
  83. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_string.rs +31 -231
  84. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_typed_data.rs +6 -9
  85. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/rb_sys.rs +4 -4
  86. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/scan_args.rs +3 -3
  87. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/thread.rs +16 -10
  88. data/ext/cargo-vendor/magnus-0.8.2/src/time.rs +462 -0
  89. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/try_convert.rs +64 -2
  90. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/typed_data.rs +113 -11
  91. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/value/flonum.rs +1 -1
  92. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/value.rs +83 -6
  93. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/test +1 -1
  94. data/ext/cargo-vendor/magnus-0.8.2/tests/hash.rs +44 -0
  95. data/ext/cargo-vendor/magnus-0.8.2/tests/io.rs +62 -0
  96. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/return_iter.rs +1 -1
  97. data/ext/cargo-vendor/magnus-0.8.2/tests/string.rs +23 -0
  98. data/ext/cargo-vendor/magnus-0.8.2/tests/time.rs +71 -0
  99. data/ext/cargo-vendor/magnus-macros-0.8.0/.cargo-checksum.json +1 -0
  100. data/ext/cargo-vendor/magnus-macros-0.8.0/.cargo_vcs_info.json +6 -0
  101. data/ext/cargo-vendor/magnus-macros-0.8.0/Cargo.lock +47 -0
  102. data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/Cargo.toml +10 -1
  103. data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/Cargo.toml.orig +1 -1
  104. data/ext/cargo-vendor/magnus-macros-0.8.0/src/lib.rs +545 -0
  105. data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/src/typed_data.rs +3 -3
  106. data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/src/util.rs +1 -1
  107. data/ext/cargo-vendor/serde_magnus-0.10.0/.cargo-checksum.json +1 -0
  108. data/ext/cargo-vendor/serde_magnus-0.10.0/.cargo_vcs_info.json +6 -0
  109. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/Cargo.lock +77 -75
  110. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/Cargo.toml +3 -3
  111. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/Cargo.toml.orig +7 -4
  112. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/README.md +8 -5
  113. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/array_deserializer.rs +12 -8
  114. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/array_enumerator.rs +12 -7
  115. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/deserializer.rs +21 -18
  116. data/ext/cargo-vendor/serde_magnus-0.10.0/src/de/enum_deserializer.rs +35 -0
  117. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/hash_deserializer.rs +18 -11
  118. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/mod.rs +76 -76
  119. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/variant_deserializer.rs +10 -9
  120. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/error.rs +10 -4
  121. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/lib.rs +6 -5
  122. data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/enums.rs +11 -0
  123. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/map_serializer.rs +11 -12
  124. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/mod.rs +53 -50
  125. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/seq_serializer.rs +11 -10
  126. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/serializer.rs +50 -34
  127. data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/struct_serializer.rs +40 -0
  128. data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/struct_variant_serializer.rs +45 -0
  129. data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/tuple_variant_serializer.rs +38 -0
  130. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_arrays.rs +3 -3
  131. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_booleans.rs +15 -0
  132. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_enums.rs +39 -0
  133. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_floats.rs +12 -0
  134. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_integers.rs +18 -0
  135. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_maps.rs +3 -2
  136. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_options.rs +15 -0
  137. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_results.rs +17 -0
  138. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_strings.rs +7 -7
  139. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_structs.rs +9 -9
  140. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_tuples.rs +27 -0
  141. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_vecs.rs +3 -3
  142. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_arrays.rs +3 -3
  143. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/serializing_booleans.rs +15 -0
  144. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_enums.rs +9 -7
  145. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_floats.rs +2 -2
  146. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_integers.rs +4 -4
  147. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_maps.rs +3 -2
  148. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_options.rs +3 -3
  149. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_results.rs +5 -4
  150. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/serializing_strings.rs +30 -0
  151. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_structs.rs +15 -7
  152. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/serializing_tuples.rs +35 -0
  153. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_vecs.rs +3 -3
  154. data/ext/cargo-vendor/unicode-ident-1.0.19/.cargo-checksum.json +1 -1
  155. data/ext/code_ownership/Cargo.toml +3 -3
  156. data/ext/code_ownership/extconf.rb +2 -1
  157. data/ext/code_ownership/src/lib.rs +18 -18
  158. data/lib/code_ownership/cli.rb +1 -0
  159. data/lib/code_ownership/private/file_path_finder.rb +22 -10
  160. data/lib/code_ownership/private/file_path_team_cache.rb +5 -9
  161. data/lib/code_ownership/private/for_file_output_builder.rb +0 -1
  162. data/lib/code_ownership/private/team_finder.rb +9 -16
  163. data/lib/code_ownership/version.rb +2 -2
  164. data/lib/code_ownership.rb +14 -17
  165. metadata +359 -337
  166. data/ext/cargo-vendor/codeowners-0.3.0/.cargo-checksum.json +0 -1
  167. data/ext/cargo-vendor/codeowners-0.3.0/tests/validate_files_test.rs +0 -144
  168. data/ext/cargo-vendor/magnus-0.7.1/.cargo-checksum.json +0 -1
  169. data/ext/cargo-vendor/magnus-0.7.1/.cargo_vcs_info.json +0 -6
  170. data/ext/cargo-vendor/magnus-0.7.1/Cargo.toml +0 -95
  171. data/ext/cargo-vendor/magnus-0.7.1/build.rs +0 -5
  172. data/ext/cargo-vendor/magnus-0.7.1/examples/mut_point.rs +0 -60
  173. data/ext/cargo-vendor/magnus-0.7.1/src/time.rs +0 -190
  174. data/ext/cargo-vendor/magnus-0.7.1/tests/hash.rs +0 -25
  175. data/ext/cargo-vendor/magnus-0.7.1/tests/string.rs +0 -13
  176. data/ext/cargo-vendor/magnus-macros-0.6.0/.cargo-checksum.json +0 -1
  177. data/ext/cargo-vendor/magnus-macros-0.6.0/.cargo_vcs_info.json +0 -6
  178. data/ext/cargo-vendor/magnus-macros-0.6.0/src/lib.rs +0 -401
  179. data/ext/cargo-vendor/rb-sys-env-0.1.2/.cargo-checksum.json +0 -1
  180. data/ext/cargo-vendor/rb-sys-env-0.1.2/.cargo_vcs_info.json +0 -6
  181. data/ext/cargo-vendor/rb-sys-env-0.1.2/Cargo.toml +0 -25
  182. data/ext/cargo-vendor/rb-sys-env-0.1.2/Cargo.toml.orig +0 -14
  183. data/ext/cargo-vendor/rb-sys-env-0.1.2/LICENSE-APACHE +0 -190
  184. data/ext/cargo-vendor/rb-sys-env-0.1.2/LICENSE-MIT +0 -21
  185. data/ext/cargo-vendor/rb-sys-env-0.1.2/readme.md +0 -119
  186. data/ext/cargo-vendor/rb-sys-env-0.1.2/src/defines.rs +0 -37
  187. data/ext/cargo-vendor/rb-sys-env-0.1.2/src/lib.rs +0 -180
  188. data/ext/cargo-vendor/rb-sys-env-0.1.2/src/rb_env.rs +0 -110
  189. data/ext/cargo-vendor/rb-sys-env-0.1.2/src/ruby_version.rs +0 -163
  190. data/ext/cargo-vendor/rb-sys-env-0.1.2/src/utils.rs +0 -6
  191. data/ext/cargo-vendor/serde_magnus-0.9.0/.cargo-checksum.json +0 -1
  192. data/ext/cargo-vendor/serde_magnus-0.9.0/.cargo_vcs_info.json +0 -6
  193. data/ext/cargo-vendor/serde_magnus-0.9.0/src/de/enum_deserializer.rs +0 -30
  194. data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/enums.rs +0 -11
  195. data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/struct_serializer.rs +0 -36
  196. data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/struct_variant_serializer.rs +0 -37
  197. data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/tuple_variant_serializer.rs +0 -33
  198. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_booleans.rs +0 -18
  199. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_enums.rs +0 -39
  200. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_floats.rs +0 -12
  201. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_integers.rs +0 -18
  202. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_options.rs +0 -15
  203. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_results.rs +0 -17
  204. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_tuples.rs +0 -31
  205. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/serializing_booleans.rs +0 -15
  206. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/serializing_strings.rs +0 -30
  207. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/serializing_tuples.rs +0 -27
  208. data/ext/cargo-vendor/unicode-ident-1.0.19/tests/fst/.gitignore +0 -1
  209. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/.github/workflows/audit.yml +0 -0
  210. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/.github/workflows/ci.yml +0 -0
  211. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/.github/workflows/dotslash-config.json +0 -0
  212. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/.rustfmt.toml +0 -0
  213. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/.rusty-hook.toml +0 -0
  214. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/dev/run_benchmarks_for_file.sh +0 -0
  215. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/dev/run_benchmarks_for_gv.sh +0 -0
  216. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/rust-toolchain.toml +0 -0
  217. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/cache/file.rs +0 -0
  218. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/cache/mod.rs +0 -0
  219. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/cache/noop.rs +0 -0
  220. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/common_test.rs +0 -0
  221. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/lib.rs +0 -0
  222. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/main.rs +0 -0
  223. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/codeowners_query.rs +0 -0
  224. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/file_generator.rs +0 -0
  225. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/file_owner_finder.rs +0 -0
  226. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/annotated_file_mapper.rs +0 -0
  227. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/directory_mapper.rs +0 -0
  228. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/escaper.rs +0 -0
  229. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/team_gem_mapper.rs +0 -0
  230. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/team_glob_mapper.rs +0 -0
  231. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/ownership/mapper/team_yml_mapper.rs +0 -0
  232. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/path_utils.rs +0 -0
  233. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/src/project_file_builder.rs +0 -0
  234. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/cache_test.rs +0 -0
  235. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/crosscheck_owners_test.rs +0 -0
  236. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/.github/CODEOWNERS +0 -0
  237. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/config/code_ownership.yml +0 -0
  238. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/config/teams/payments.yml +0 -0
  239. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/config/teams/payroll.yml +0 -0
  240. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/gems/payroll_calculator/calculator.rb +0 -0
  241. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/models/bank_account.rb +0 -0
  242. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/models/blockchain.rb +0 -0
  243. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/models/payroll.rb +0 -0
  244. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/payments/nacha.rb +0 -0
  245. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/services/.codeowner +0 -0
  246. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/services/multi_owned.rb +0 -0
  247. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/app/unowned.rb +0 -0
  248. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/invalid_project/ruby/packages/payroll_flow/package.yml +0 -0
  249. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/.github/CODEOWNERS +0 -0
  250. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/.keep +0 -0
  251. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/config/code_ownership.yml +0 -0
  252. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/config/teams/design.yml +0 -0
  253. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/config/teams/frontend.yml +0 -0
  254. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/frontend/apps/public/index.tsx +0 -0
  255. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/frontend/packages/dashboard/package.json +0 -0
  256. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/frontend/packages/dashboard/src/index.tsx +0 -0
  257. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/frontend/packages/ui-kit/.codeowner +0 -0
  258. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/javascript_only_project/frontend/packages/ui-kit/src/button.tsx +0 -0
  259. /data/ext/cargo-vendor/{codeowners-0.3.0/tests/fixtures/valid_project → codeowners-0.3.2/tests/fixtures/missing_github_team}/gems/pets/dog.rb +0 -0
  260. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/.github/CODEOWNERS +0 -0
  261. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/app/consumers/.codeowner +0 -0
  262. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/app/consumers/deep/nesting/nestdir/deep_file.rb +0 -0
  263. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/app/consumers/one_owner.rb +0 -0
  264. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/app/services/.codeowner +0 -0
  265. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/app/services/exciting/.codeowner +0 -0
  266. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/app/services/exciting/some_other_file.rb +0 -0
  267. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/config/code_ownership.yml +0 -0
  268. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/config/teams/bar.yml +0 -0
  269. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/multiple-directory-owners/config/teams/foo.yml +0 -0
  270. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/.github/CODEOWNERS +0 -0
  271. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/.ignore +0 -0
  272. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/config/code_ownership.yml +0 -0
  273. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/config/teams/payments.yml +0 -0
  274. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/config/teams/payroll.yml +0 -0
  275. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/config/teams/ux.yml +0 -0
  276. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/gems/payroll_calculator/calculator.rb +0 -0
  277. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/PayrollFlow/index.tsx +0 -0
  278. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/PayrollFlow/package.json +0 -0
  279. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/items/(special)/.codeowner +0 -0
  280. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/items/(special)/pay.ts +0 -0
  281. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/items/.codeowner +0 -0
  282. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/items/item.ts +0 -0
  283. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/javascript/packages/list/page-admin.tsx +0 -0
  284. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/models/bank_account.rb +0 -0
  285. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/models/payroll.rb +0 -0
  286. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/payments/foo/.codeowner +0 -0
  287. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/payments/foo/ownedby_payroll.rb +0 -0
  288. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/payments/nacha.rb +0 -0
  289. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/payroll/.codeowner +0 -0
  290. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/payroll/payroll.rb +0 -0
  291. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/views/foos/edit.erb +0 -0
  292. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/views/foos/index.html.erb +0 -0
  293. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/app/views/foos/new.html.erb +0 -0
  294. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/ignored_files/git_ignored.rb +0 -0
  295. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/ruby/packages/payroll_flow/package.yml +0 -0
  296. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project/should_be_ignored/an_ignored_file.rb +0 -0
  297. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/.github/CODEOWNERS +0 -0
  298. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/config/code_ownership.yml +0 -0
  299. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/config/teams/brewers.yml +0 -0
  300. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/config/teams/cubs.yml +0 -0
  301. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/config/teams/giants.yml +0 -0
  302. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/config/teams/rockies.yml +0 -0
  303. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/datepicker/package.json +0 -0
  304. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/datepicker/src/picks/dp.tsx +0 -0
  305. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/list/package.json +0 -0
  306. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/list/src/item.tsx +0 -0
  307. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/package.json +0 -0
  308. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/src/field.tsx +0 -0
  309. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/src/fields/small.tsx +0 -0
  310. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/gems/apollo/lib/apollo.rb +0 -0
  311. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/gems/ivy/lib/ivy.rb +0 -0
  312. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/gems/lager/lib/lager.rb +0 -0
  313. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/gems/summit/lib/summit.rb +0 -0
  314. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/packs/games/app/services/stats.rb +0 -0
  315. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/packs/games/package.yml +0 -0
  316. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/packs/locations/app/services/capacity.rb +0 -0
  317. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/packs/locations/package.yml +0 -0
  318. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/packs/schedule/app/services/date.rb +0 -0
  319. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/packs/schedule/package.yml +0 -0
  320. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/brewers/lib/util.rb +0 -0
  321. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/brewers/services/play.rb +0 -0
  322. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/.codeowner +0 -0
  323. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/.codeowner +0 -0
  324. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/db/price.rb +0 -0
  325. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/entertainment.rb +0 -0
  326. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/play.rb +0 -0
  327. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/giants/services/play.rb +0 -0
  328. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/fixtures/valid_project_with_overrides/ruby/app/rockies/services/play.rb +0 -0
  329. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/invalid_project_structure_test.rs +0 -0
  330. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/invalid_project_test.rs +0 -0
  331. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/multiple_directory_owners_test.rs +0 -0
  332. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/untracked_files_test.rs +0 -0
  333. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tests/valid_project_with_overrides_test.rs +0 -0
  334. /data/ext/cargo-vendor/{codeowners-0.3.0 → codeowners-0.3.2}/tmp/.gitkeep +0 -0
  335. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/.cargo/config.toml +0 -0
  336. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/Gemfile +0 -0
  337. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/LICENSE +0 -0
  338. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/complete_object/Rakefile +0 -0
  339. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/complete_object/lib/temperature.rb +0 -0
  340. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/Rakefile +0 -0
  341. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/lib/ahriman/error.rb +0 -0
  342. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/lib/ahriman.rb +0 -0
  343. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/test/error_test.rb +0 -0
  344. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_rust/Rakefile +0 -0
  345. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_rust/lib/ahriman.rb +0 -0
  346. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_rust/test/error_test.rb +0 -0
  347. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/fibonacci.rs +0 -0
  348. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/hello_world.rs +0 -0
  349. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/point.rs +0 -0
  350. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/Rakefile +0 -0
  351. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/lib/rust_blank.rb +0 -0
  352. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/test/bench.rb +0 -0
  353. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/test/blank_test.rb +0 -0
  354. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/block.rs +0 -0
  355. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/embed.rs +0 -0
  356. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/enumerator.rs +0 -0
  357. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/exception.rs +0 -0
  358. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/float.rs +0 -0
  359. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/into_value.rs +0 -0
  360. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/numeric.rs +0 -0
  361. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/object.rs +0 -0
  362. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/process.rs +0 -0
  363. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_complex.rs +0 -0
  364. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_file.rs +0 -0
  365. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_float.rs +0 -0
  366. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_match.rs +0 -0
  367. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_object.rs +0 -0
  368. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_rational.rs +0 -0
  369. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_regexp.rs +0 -0
  370. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_struct.rs +0 -0
  371. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/range.rs +0 -0
  372. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/symbol.rs +0 -0
  373. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/allocate_before_init.rs +0 -0
  374. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/array_slice.rs +0 -0
  375. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/block_call.rs +0 -0
  376. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/bytes.rs +0 -0
  377. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/call_proc.rs +0 -0
  378. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/classname.rs +0 -0
  379. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/clone.rs +0 -0
  380. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/codepoints.rs +0 -0
  381. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/debug_exception.rs +0 -0
  382. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/encoding_capable.rs +0 -0
  383. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/enumerator.rs +0 -0
  384. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/enumeratorize.rs +0 -0
  385. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/float_convert_from_value.rs +0 -0
  386. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/float_convert_to_value.rs +0 -0
  387. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/fmt.rs +0 -0
  388. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/freeze.rs +0 -0
  389. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/integer_convert_to_value.rs +0 -0
  390. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/integer_traits.rs +0 -0
  391. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/ivar.rs +0 -0
  392. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/lazy_id.rs +0 -0
  393. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/make_proc.rs +0 -0
  394. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/proc_new.rs +0 -0
  395. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/range.rs +0 -0
  396. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/return_custom_error.rs +0 -0
  397. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/scan_args.rs +0 -0
  398. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/str.rs +0 -0
  399. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/struct.rs +0 -0
  400. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/symbol.rs +0 -0
  401. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/try_convert_array.rs +0 -0
  402. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/tuple_to_array.rs +0 -0
  403. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data.rs +0 -0
  404. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data_obj.rs +0 -0
  405. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data_subclass.rs +0 -0
  406. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data_subclass_from_ruby.rs +0 -0
  407. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/yield.rs +0 -0
  408. /data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/LICENSE +0 -0
  409. /data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/src/init.rs +0 -0
  410. /data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/LICENSE +0 -0
@@ -0,0 +1,545 @@
1
+ //! Derive and proc macros for magnus.
2
+ //!
3
+ //! ```
4
+ //! #[magnus::wrap(class = "RbPoint", free_immediately, size)]
5
+ //! struct Point {
6
+ //! x: isize,
7
+ //! y: isize,
8
+ //! }
9
+ //!
10
+ //! #[magnus::init]
11
+ //! fn init(ruby: &magnus::Ruby) -> Result<(), magnus::Error> {
12
+ //! ruby.define_class("RbPoint", ruby.class_object())?;
13
+ //! Ok(())
14
+ //! }
15
+ //! ```
16
+
17
+ #![warn(missing_docs)]
18
+
19
+ use proc_macro::TokenStream;
20
+ use syn::parse_macro_input;
21
+
22
+ mod init;
23
+ mod typed_data;
24
+ mod util;
25
+
26
+ /// Mark a function as the 'init' function to be run for a library when it is
27
+ /// `require`d by Ruby code.
28
+ ///
29
+ /// The init function is used to define your Ruby modules & classes, bind
30
+ /// functions as Ruby methods, etc.
31
+ ///
32
+ /// # Attributes
33
+ ///
34
+ /// * `name = "..."` - sets the name of the init function exported for Ruby.
35
+ /// This default's to the current crate's name. The name will be prepended
36
+ /// with `Init_` and `-` will be replaced with `_`. This (minus the `Init_`
37
+ /// prefix) must match the name of the final `.so`/`.bundle` file.
38
+ ///
39
+ /// # Examples
40
+ ///
41
+ /// ```
42
+ /// fn distance(a: (f64, f64), b: (f64, f64)) -> f64 {
43
+ /// ((b.0 - a.0).powi(2) + (b.1 - a.1).powi(2)).sqrt()
44
+ /// }
45
+ ///
46
+ /// #[magnus::init]
47
+ /// fn init(ruby: &magnus::Ruby) {
48
+ /// ruby.define_global_function("distance", magnus::function!(distance, 2));
49
+ /// }
50
+ /// ```
51
+ /// The init function can also return `Result<(), magnus::Error>`.
52
+ /// ```
53
+ /// use magnus::{function, method, prelude::*, Error, Ruby};
54
+ ///
55
+ /// #[magnus::wrap(class = "Euclid::Point", free_immediately, size)]
56
+ /// struct Point {
57
+ /// x: isize,
58
+ /// y: isize,
59
+ /// }
60
+ ///
61
+ /// impl Point {
62
+ /// fn new(x: isize, y: isize) -> Self {
63
+ /// Self { x, y }
64
+ /// }
65
+ ///
66
+ /// fn x(&self) -> isize {
67
+ /// self.x
68
+ /// }
69
+ ///
70
+ /// fn y(&self) -> isize {
71
+ /// self.y
72
+ /// }
73
+ /// }
74
+ ///
75
+ /// #[magnus::init]
76
+ /// fn init(ruby: &Ruby) -> Result<(), Error> {
77
+ /// let module = ruby.define_module("Euclid")?;
78
+ /// let class = module.define_class("Point", ruby.class_object())?;
79
+ /// class.define_singleton_method("new", function!(Point::new, 2))?;
80
+ /// class.define_method("x", method!(Point::x, 0))?;
81
+ /// class.define_method("y", method!(Point::y, 0))?;
82
+ /// Ok(())
83
+ /// }
84
+ /// ```
85
+ /// Setting the name.
86
+ /// ```
87
+ /// #[magnus::init(name = "example")]
88
+ /// fn init() {
89
+ /// ()
90
+ /// }
91
+ /// ```
92
+ #[proc_macro_attribute]
93
+ pub fn init(attrs: TokenStream, item: TokenStream) -> TokenStream {
94
+ let mut name = None;
95
+ if !attrs.is_empty() {
96
+ let attr_parser = syn::meta::parser(|meta| {
97
+ if meta.path.is_ident("name") {
98
+ name = Some(meta.value()?.parse::<syn::LitStr>()?.value());
99
+ Ok(())
100
+ } else {
101
+ Err(meta.error("unsupported attribute"))
102
+ }
103
+ });
104
+ parse_macro_input!(attrs with attr_parser);
105
+ }
106
+ match init::expand(name, parse_macro_input!(item)) {
107
+ Ok(tokens) => tokens,
108
+ Err(e) => e.into_compile_error(),
109
+ }
110
+ .into()
111
+ }
112
+
113
+ /// Allows a Rust type to be passed to Ruby, where it is automatically wrapped
114
+ /// as a Ruby object.
115
+ ///
116
+ /// For more control over the wrapping behavior, see [`TypedData`].
117
+ ///
118
+ /// # Attributes
119
+ ///
120
+ /// The `#[wrap]` macro supports several attributes to configure its behavior:
121
+ ///
122
+ /// * `class = "..."` (required):
123
+ /// Specifies the Ruby class associated with the Rust type. Supports module
124
+ /// paths, such as `Foo::Bar::Baz`, to locate nested classes.
125
+ ///
126
+ /// * `name = "..."`:
127
+ /// Specifies a debug name for the type. This name must be unique and
128
+ /// defaults to the class name if not explicitly provided.
129
+ ///
130
+ /// * `free_immediately`:
131
+ /// Indicates that the Rust type should be dropped as soon as the Ruby object
132
+ /// is garbage collected. This is only safe if the type's [`Drop`]
133
+ /// implementation does not call Ruby, as calling Ruby during the garbage
134
+ /// collection process is unsafe and can lead to undefined behavior.
135
+ ///
136
+ /// * `size`:
137
+ /// Reports the [`std::mem::size_of_val`] of the type to Ruby, helping Ruby's
138
+ /// garbage collector determine when to run.
139
+ ///
140
+ /// * `unsafe_generics`:
141
+ /// Disables compile-time checks for types with generics, allowing their use
142
+ /// with `#[wrap]`. This should only be used if you are confident that the
143
+ /// derived implementation of [`TypedData`] is correct for your generic type.
144
+ ///
145
+ /// # Variant Attributes
146
+ ///
147
+ /// When wrapping enums, the `#[magnus(...)]` attribute can also be applied to
148
+ /// individual variants to define specific behavior for them:
149
+ ///
150
+ /// * `class = "..."`:
151
+ /// Specifies the Ruby class associated with a particular variant. This is
152
+ /// useful for defining subclasses for the variants.
153
+ ///
154
+ /// # Examples
155
+ ///
156
+ /// Wrapping a struct:
157
+ ///
158
+ /// ```
159
+ /// use magnus::{function, prelude::*, wrap, Ruby};
160
+ ///
161
+ /// #[wrap(class = "Point", free_immediately, size)]
162
+ /// struct Point {
163
+ /// x: isize,
164
+ /// y: isize,
165
+ /// }
166
+ ///
167
+ /// fn point(x: isize, y: isize) -> Point {
168
+ /// Point { x, y }
169
+ /// }
170
+ ///
171
+ /// fn distance(a: &Point, b: &Point) -> f64 {
172
+ /// (((b.x - a.x).pow(2) + (b.y - a.y).pow(2)) as f64).sqrt()
173
+ /// }
174
+ ///
175
+ /// #[magnus::init]
176
+ /// fn init(ruby: &Ruby) {
177
+ /// ruby.define_global_function("point", function!(point, 2));
178
+ /// ruby.define_global_function("distance", function!(distance, 2));
179
+ /// }
180
+ /// ```
181
+ ///
182
+ /// See [`examples/point.rs`] for the complete example.
183
+ ///
184
+ /// [`examples/point.rs`]: https://github.com/matsadler/magnus/blob/main/examples/point.rs
185
+ ///
186
+ /// Handling mutability:
187
+ ///
188
+ /// ```
189
+ /// use std::cell::RefCell;
190
+ ///
191
+ /// use magnus::{prelude::*, wrap};
192
+ ///
193
+ /// struct Point {
194
+ /// x: isize,
195
+ /// y: isize,
196
+ /// }
197
+ ///
198
+ /// #[wrap(class = "Point")]
199
+ /// struct MutPoint(RefCell<Point>);
200
+ ///
201
+ /// impl MutPoint {
202
+ /// fn set_x(&self, i: isize) {
203
+ /// self.0.borrow_mut().x = i;
204
+ /// }
205
+ /// }
206
+ /// ```
207
+ ///
208
+ /// See [`examples/mut_point.rs`] for the complete example.
209
+ ///
210
+ /// [`examples/mut_point.rs`]: https://github.com/matsadler/magnus/blob/main/examples/mut_point.rs
211
+ ///
212
+ /// Supporting subclassing:
213
+ ///
214
+ /// ```
215
+ /// use std::cell::RefCell;
216
+ ///
217
+ /// use magnus::{function, method, prelude::*, wrap, Error, Ruby};
218
+ ///
219
+ /// #[derive(Default)]
220
+ /// struct Point {
221
+ /// x: isize,
222
+ /// y: isize,
223
+ /// }
224
+ ///
225
+ /// #[derive(Default)]
226
+ /// #[wrap(class = "Point")]
227
+ /// struct MutPoint(RefCell<Point>);
228
+ ///
229
+ /// impl MutPoint {
230
+ /// fn initialize(&self, x: isize, y: isize) {
231
+ /// let mut this = self.0.borrow_mut();
232
+ /// this.x = x;
233
+ /// this.y = y;
234
+ /// }
235
+ /// }
236
+ ///
237
+ /// #[magnus::init]
238
+ /// fn init(ruby: &Ruby) -> Result<(), Error> {
239
+ /// let class = ruby.define_class("Point", ruby.class_object()).unwrap();
240
+ /// class.define_alloc_func::<MutPoint>();
241
+ /// class.define_method("initialize", method!(MutPoint::initialize, 2))?;
242
+ /// Ok(())
243
+ /// }
244
+ /// ```
245
+ ///
246
+ /// Error handling:
247
+ ///
248
+ /// ```
249
+ /// use std::cell::RefCell;
250
+ ///
251
+ /// use magnus::{prelude::*, wrap, Error, Ruby};
252
+ ///
253
+ /// struct Point {
254
+ /// x: isize,
255
+ /// y: isize,
256
+ /// }
257
+ ///
258
+ /// #[wrap(class = "Point")]
259
+ /// struct MutPoint(RefCell<Point>);
260
+ ///
261
+ /// impl MutPoint {
262
+ /// fn add_x(ruby: &Ruby, rb_self: &Self, val: isize) -> Result<isize, Error> {
263
+ /// if let Some(sum) = rb_self.0.borrow().x.checked_add(val) {
264
+ /// rb_self.0.borrow_mut().x = sum;
265
+ /// Ok(sum)
266
+ /// } else {
267
+ /// return Err(Error::new(
268
+ /// ruby.exception_range_error(),
269
+ /// "result out of range",
270
+ /// ));
271
+ /// }
272
+ /// }
273
+ /// }
274
+ /// ```
275
+ ///
276
+ /// Wrapping an enum with subclasses:
277
+ ///
278
+ /// ```
279
+ /// use std::f64::consts::PI;
280
+ ///
281
+ /// use magnus::{function, method, prelude::*, wrap, Ruby};
282
+ ///
283
+ /// #[wrap(class = "Shape")]
284
+ /// enum Shape {
285
+ /// #[magnus(class = "Circle")]
286
+ /// Circle { r: f64 },
287
+ /// #[magnus(class = "Rectangle")]
288
+ /// Rectangle { x: f64, y: f64 },
289
+ /// }
290
+ ///
291
+ /// impl Shape {
292
+ /// fn area(&self) -> f64 {
293
+ /// match self {
294
+ /// Shape::Circle { r } => PI * r * r,
295
+ /// Shape::Rectangle { x, y } => x * y,
296
+ /// }
297
+ /// }
298
+ /// }
299
+ ///
300
+ /// #[magnus::init]
301
+ /// fn init(ruby: &Ruby) -> Result<(), magnus::Error> {
302
+ /// let shape = ruby.define_class("Shape", ruby.class_object())?;
303
+ /// shape.define_method("area", method!(Shape::area, 0))?;
304
+ ///
305
+ /// let circle = ruby.define_class("Circle", shape)?;
306
+ /// circle.define_singleton_method("new", function!(|r| Shape::Circle { r }, 1))?;
307
+ ///
308
+ /// let rectangle = ruby.define_class("Rectangle", shape)?;
309
+ /// rectangle.define_singleton_method("new", function!(|x, y| Shape::Rectangle { x, y }, 2))?;
310
+ ///
311
+ /// Ok(())
312
+ /// }
313
+ /// ```
314
+ ///
315
+ /// See [`examples/inheritance.rs`] for the complete example.
316
+ ///
317
+ /// [`examples/inheritance.rs`]: https://github.com/matsadler/magnus/blob/main/examples/inheritance.rs
318
+ #[proc_macro_attribute]
319
+ pub fn wrap(attrs: TokenStream, item: TokenStream) -> TokenStream {
320
+ typed_data::expand(parse_macro_input!(attrs), parse_macro_input!(item)).into()
321
+ }
322
+
323
+ /// Derives `DataTypeFunctions` with default implementations, for simple uses
324
+ /// of [`TypedData`].
325
+ ///
326
+ /// For cases where no custom `DataTypeFunctions` are required a default
327
+ /// implementation can be derived. The [`macro@wrap`] macro may be a simpler
328
+ /// alternative in this use case.
329
+ #[proc_macro_derive(DataTypeFunctions)]
330
+ pub fn derive_data_type_functions(input: TokenStream) -> TokenStream {
331
+ typed_data::expand_derive_data_type_functions(parse_macro_input!(input)).into()
332
+ }
333
+
334
+ /// Derives `TypedData`, allowing a Rust type to be passed to Ruby and
335
+ /// automatically wrapped as a Ruby object.
336
+ ///
337
+ /// For simpler use cases, consider using [`macro@wrap`].
338
+ ///
339
+ /// # Attributes
340
+ ///
341
+ /// The `#[magnus(...)]` attribute supports the following values to configure
342
+ /// its behavior:
343
+ ///
344
+ /// * `class = "..."` (required):
345
+ /// Specifies the Ruby class associated with the Rust type. Supports module
346
+ /// paths, such as `Foo::Bar::Baz`.
347
+ ///
348
+ /// * `name = "..."`:
349
+ /// Specifies a debug name for the type. This name must be unique and
350
+ /// defaults to the class name if not explicitly provided.
351
+ ///
352
+ /// * `free_immediately`:
353
+ /// Indicates that the Rust type should be dropped as soon as the Ruby object
354
+ /// is garbage collected. This is only safe if the type's [`Drop`] and
355
+ /// `DataTypeFunctions::free` implementations do not call Ruby.
356
+ /// If safe this should be enabled as this performs better and is more
357
+ /// memory efficient.
358
+ ///
359
+ /// * `mark`:
360
+ /// Enables Ruby to call the `DataTypeFunctions::mark` function.
361
+ ///
362
+ /// * `size`:
363
+ /// Enables Ruby to call the `DataTypeFunctions::size` function.
364
+ ///
365
+ /// * `compact`:
366
+ /// Enables Ruby to call the `DataTypeFunctions::compact` function.
367
+ ///
368
+ /// * `wb_protected`:
369
+ /// Enable the 'write barrier protected' flag.
370
+ ///
371
+ /// Types that contain Ruby values by default do not participate in
372
+ /// generational GC (they are scanned every GC). This flag asserts all
373
+ /// operations that write Ruby values to this type are protected with
374
+ /// write barriers (see `typed_data::Writebarrier::writebarrier`) so this
375
+ /// type can participate in generational GC.
376
+ ///
377
+ /// The write barrier is hard to get right. Magnus recommends you do not use
378
+ /// this flag.
379
+ ///
380
+ /// * `frozen_shareable`:
381
+ /// Sets the `frozen_shareable` flag for objects that can be safely accessed
382
+ /// concurrently from multiple threads when frozen. This allows objects to
383
+ /// shared between Ractors.
384
+ ///
385
+ /// * `unsafe_generics`:
386
+ /// Disables compile-time checks for types with generics, allowing their use
387
+ /// with `#[magnus(...)]`. Use this only if you are confident the derived
388
+ /// implementation is correct for your generic type.
389
+ ///
390
+ /// # Field Attributes
391
+ ///
392
+ /// The `#[magnus(...)]` attribute can be set on struct fields with the
393
+ /// following values:
394
+ ///
395
+ /// * `opaque_attr_reader`:
396
+ /// For a Ruby value wrapped in `Opaque`, creates an accessor method that
397
+ /// returns the unwrapped Ruby value.
398
+ ///
399
+ /// # Variant Attributes
400
+ ///
401
+ /// The `#[magnus(...)]` attribute can be set on enum variants with the
402
+ /// following values:
403
+ ///
404
+ /// * `class = "..."`:
405
+ /// Specifies the Ruby class associated with the variant. Supports module
406
+ /// paths, such as `Foo::Bar::Baz`.
407
+ ///
408
+ /// # Examples
409
+ ///
410
+ /// Wrapping a struct
411
+ ///
412
+ /// ```
413
+ /// use magnus::{function, prelude::*, DataTypeFunctions, Ruby, TypedData};
414
+ ///
415
+ /// #[derive(DataTypeFunctions, TypedData)]
416
+ /// #[magnus(class = "Point", size, free_immediately)]
417
+ /// struct Point {
418
+ /// x: isize,
419
+ /// y: isize,
420
+ /// }
421
+ ///
422
+ /// // wraps `Point` struct in a Ruby `Point` object when returned to Ruby.
423
+ /// fn point(x: isize, y: isize) -> Point {
424
+ /// Point { x, y }
425
+ /// }
426
+ ///
427
+ /// // automatically unwraps `Point` objects to references to `Point`` structs
428
+ /// // when invoking the function.
429
+ /// fn distance(a: &Point, b: &Point) -> f64 {
430
+ /// (((b.x - a.x).pow(2) + (b.y - a.y).pow(2)) as f64).sqrt()
431
+ /// }
432
+ ///
433
+ /// #[magnus::init]
434
+ /// fn init(ruby: &Ruby) {
435
+ /// ruby.define_global_function("point", function!(point, 2));
436
+ /// ruby.define_global_function("distance", function!(distance, 2));
437
+ /// }
438
+ /// ```
439
+ ///
440
+ /// Wrapping an enum with subclasses:
441
+ ///
442
+ /// ```
443
+ /// use magnus::{class, prelude::*, wrap, Error, Ruby};
444
+ ///
445
+ /// #[wrap(class = "Shape")]
446
+ /// enum Shape {
447
+ /// #[magnus(class = "Circle")]
448
+ /// Circle { r: f64 },
449
+ /// #[magnus(class = "Rectangle")]
450
+ /// Rectangle { x: f64, y: f64 },
451
+ /// }
452
+ ///
453
+ /// #[magnus::init]
454
+ /// fn init(ruby: &Ruby) -> Result<(), Error> {
455
+ /// let shape = ruby.define_class("Shape", ruby.class_object())?;
456
+ /// ruby.define_class("Circle", shape)?;
457
+ /// ruby.define_class("Rectangle", shape)?;
458
+ /// Ok(())
459
+ /// }
460
+ /// ```
461
+ ///
462
+ /// Custom `DataTypeFunctions` implementation:
463
+ ///
464
+ /// ```
465
+ /// use std::mem::size_of_val;
466
+ ///
467
+ /// use magnus::{DataTypeFunctions, TypedData};
468
+ ///
469
+ /// #[derive(TypedData)]
470
+ /// #[magnus(class = "Name", size, free_immediately)]
471
+ /// struct Name {
472
+ /// first: String,
473
+ /// last: String,
474
+ /// }
475
+ ///
476
+ /// impl DataTypeFunctions for Name {
477
+ /// fn size(&self) -> usize {
478
+ /// size_of_val(&self.first) + size_of_val(&self.last)
479
+ /// }
480
+ /// }
481
+ /// ```
482
+ ///
483
+ /// Struct containing Ruby values:
484
+ ///
485
+ /// ```
486
+ /// use magnus::{
487
+ /// class, function, gc, method, prelude::*, typed_data::Obj, value::Opaque, DataTypeFunctions,
488
+ /// Ruby, TypedData,
489
+ /// };
490
+ ///
491
+ /// #[derive(DataTypeFunctions, TypedData)]
492
+ /// #[magnus(class = "Point", size, free_immediately)]
493
+ /// struct Point {
494
+ /// x: isize,
495
+ /// y: isize,
496
+ /// }
497
+ ///
498
+ /// #[derive(TypedData)]
499
+ /// #[magnus(class = "Line", free_immediately, mark)]
500
+ /// struct Line {
501
+ /// #[magnus(opaque_attr_reader)]
502
+ /// start: Opaque<Obj<Point>>,
503
+ /// #[magnus(opaque_attr_reader)]
504
+ /// end: Opaque<Obj<Point>>,
505
+ /// }
506
+ ///
507
+ /// impl Line {
508
+ /// fn new(start: Obj<Point>, end: Obj<Point>) -> Self {
509
+ /// Self {
510
+ /// start: start.into(),
511
+ /// end: end.into(),
512
+ /// }
513
+ /// }
514
+ ///
515
+ /// fn length(&self) -> f64 {
516
+ /// let start = self.start();
517
+ /// let end = self.end();
518
+ ///
519
+ /// (((end.x - start.x).pow(2) + (end.y - start.y).pow(2)) as f64).sqrt()
520
+ /// }
521
+ /// }
522
+ ///
523
+ /// impl DataTypeFunctions for Line {
524
+ /// fn mark(&self, marker: &gc::Marker) {
525
+ /// marker.mark(self.start);
526
+ /// marker.mark(self.end);
527
+ /// }
528
+ /// }
529
+ ///
530
+ /// #[magnus::init]
531
+ /// fn init(ruby: &Ruby) -> Result<(), magnus::Error> {
532
+ /// let line = ruby.define_class("Line", ruby.class_object())?;
533
+ /// line.define_singleton_method("new", function!(Line::new, 2))?;
534
+ /// line.define_method("length", method!(Line::length, 0))?;
535
+ /// Ok(())
536
+ /// }
537
+ /// ```
538
+ #[proc_macro_derive(TypedData, attributes(magnus))]
539
+ pub fn derive_typed_data(input: TokenStream) -> TokenStream {
540
+ match typed_data::expand_derive_typed_data(parse_macro_input!(input)) {
541
+ Ok(tokens) => tokens,
542
+ Err(e) => e.into_compile_error(),
543
+ }
544
+ .into()
545
+ }
@@ -23,7 +23,7 @@ pub fn expand_derive_data_type_functions(input: DeriveInput) -> TokenStream {
23
23
  }
24
24
 
25
25
  pub fn expand_derive_typed_data(input: DeriveInput) -> Result<TokenStream, Error> {
26
- let attrs = match util::get_magnus_attrubute(&input.attrs)? {
26
+ let attrs = match util::get_magnus_attribute(&input.attrs)? {
27
27
  Some(v) => v,
28
28
  None => return Err(Error::new(input.span(), "missing #[magnus] attribute")),
29
29
  };
@@ -101,7 +101,7 @@ pub fn expand_derive_typed_data(input: DeriveInput) -> Result<TokenStream, Error
101
101
  let mut arms = Vec::new();
102
102
  if let Data::Enum(DataEnum { ref variants, .. }) = input.data {
103
103
  for variant in variants.into_iter() {
104
- let attrs = match util::get_magnus_attrubute(&variant.attrs)? {
104
+ let attrs = match util::get_magnus_attribute(&variant.attrs)? {
105
105
  Some(v) => v,
106
106
  None => continue,
107
107
  };
@@ -156,7 +156,7 @@ pub fn expand_derive_typed_data(input: DeriveInput) -> Result<TokenStream, Error
156
156
  }) = input.data
157
157
  {
158
158
  for field in named {
159
- let attrs = match util::get_magnus_attrubute(&field.attrs)? {
159
+ let attrs = match util::get_magnus_attribute(&field.attrs)? {
160
160
  Some(v) => v,
161
161
  None => continue,
162
162
  };
@@ -1,6 +1,6 @@
1
1
  use syn::{spanned::Spanned, Attribute, Error};
2
2
 
3
- pub fn get_magnus_attrubute(attrs: &[Attribute]) -> Result<Option<&Attribute>, Error> {
3
+ pub fn get_magnus_attribute(attrs: &[Attribute]) -> Result<Option<&Attribute>, Error> {
4
4
  let attrs = attrs
5
5
  .iter()
6
6
  .filter(|attr| attr.path().is_ident("magnus"))
@@ -0,0 +1 @@
1
+ {"files":{".cargo_vcs_info.json":"2c38e040fea253142cb5a88f405d5f4c062118b5550641a009bf3b30e7f9699f","Cargo.lock":"1ed6717180355d2a3b20b126d28fefa66ee37c3f8b60d1cc6fa4f74702c8d202","Cargo.toml":"5079fbefcc7954a3ad0dac5b30941a3e40f9d2b5660bfe4487b532b115728562","Cargo.toml.orig":"248511fc699d0cee31cc2a37210092049a626e73ae30225797b03a90d59b1b9f","LICENSE":"b13a15a45244679c4be9cc2e3a6e93e18d971fe890350e131f68a8f7d013d8ad","README.md":"e503b7e52e357adadf3827053e7f57a11500988c0a416c216ad474a9b3e3e119","src/de/array_deserializer.rs":"1f42ec33e453dc3f7da70fd67205514a39a103ab53a4f1694ccffbd6d35e4022","src/de/array_enumerator.rs":"32811edb0e1bbf621a16ee350985c246ee1d2ae9d64ec1b939fce7b3f4224cec","src/de/deserializer.rs":"99b25308b7635a09b297626b9fda4f215b025c215ee00a04fe5bd87852f19deb","src/de/enum_deserializer.rs":"4d381ecf4dc8ef9d619a9095d01376c3ccdc798d1ca434166c655fafea1420e6","src/de/hash_deserializer.rs":"8e30abfb865d99506585faaba06473cbb2b81fbc4969a518979a0417111d4344","src/de/mod.rs":"b3246446aa3a753fc2e5bb105fcc714c72928952697eaf8df4d38b57bee5c2ce","src/de/variant_deserializer.rs":"12e050e8d1aad7c1729086c2e0bc5bb9e5fb50749f0abc62f587684e222400aa","src/error.rs":"f3490e6323cfb1d2f311eb127393a755d077bf5a8c4990e14d2dfd546a18482e","src/lib.rs":"e62af27388e0bcbf91986b2789590c9b1b939031d494ecdeeb2f002d46db2b32","src/ser/enums.rs":"b68468f459f98aaa89cf86fdacf8f91439a53b53a25af66d11660772d79bba6c","src/ser/map_serializer.rs":"a8fa655d63ca8ca12107061c8ffc4779908acd608952a77b1ee7bcde52751812","src/ser/mod.rs":"cea133e2e4abd68f3d4b9f1ec7985bbea6b0790b76f9243cf32f3b4fe3770ad4","src/ser/seq_serializer.rs":"1521207de5b8469f33ddb936f1a126ee8b5117aa9c9067b6558d95d63709ebec","src/ser/serializer.rs":"c8e3834042d72c7fee92d029f7743be57607a13c70627ff9988674b9c68049e4","src/ser/struct_serializer.rs":"07b6de2746f11914660e82f9cb8c7fa714fddc3af1bc0f0ac0cb30dadea9a604","src/ser/struct_variant_serializer.rs":"dea6fbe823045d86128c3dde0b1613653a7199390939f1ce092a41c88ba4ee3f","src/ser/tuple_variant_serializer.rs":"0f0879f939d822cd83e86813f5b30741ce9dccae69572ea62c4336b1783277ca","tests/deserializing_arrays.rs":"00f2c4aaa2da6e1e32d4b7b50f8841087518074e5701ec4e2667df151d05b908","tests/deserializing_booleans.rs":"c36ef7e1bce155166bfd89626e4a0e3a56e8f31948f8691a2ab2f439a6c9bd57","tests/deserializing_enums.rs":"9930b4fc875ffed2a168fe32c8d42848fca7109175c7cc84455dd554abe25f60","tests/deserializing_floats.rs":"0d1b7c7c7f607f3599a3bd090f47113856ed6ca484a1b2b4d9336186fe3202a2","tests/deserializing_integers.rs":"fb8994ec18f91404583141f82703c02291dfda4571d43e843631f9f606ca8c7f","tests/deserializing_maps.rs":"bbadcee9578f92a56a0101698d97887d0b1ed719290cf4de6f803d237707e575","tests/deserializing_options.rs":"64a17c3bda53526a6a03c5d3aa43ea693a7f53251e80265b5ffe5256e5a0c7cd","tests/deserializing_results.rs":"538fac6cd2f76142b80beed35aabbc1641aa8927dd750c9d7e01614fe5cbfb3f","tests/deserializing_strings.rs":"b74758e444f53549d31c26defe5f8896ab661e461a2b2958d0f3a6626dae795e","tests/deserializing_structs.rs":"f4a145c10442ad689fe3d3f6d750c286bbab266fa7231802e38a6df03d3f2fee","tests/deserializing_tuples.rs":"0ab7ccf9c143fb3da2e238bc6e3c5b82ccecaee1dd1b0def36d762df2b0583bf","tests/deserializing_vecs.rs":"26d09798e73a315ce3c70e1463bef5a5f67b76f33575cc0b9012d6785b588b41","tests/serializing_arrays.rs":"c2be6d3dcc28334bcdd97d8da0f0c87816caafc13197e2f708c683eac4f9ab5d","tests/serializing_booleans.rs":"301afdc45cd5d96c2534d0a4e485cc856e2381cbf89b106b758b562eb82e7a8b","tests/serializing_enums.rs":"2b03414a7560e3979ed3f3cf312c417833e7d48343e462ff46effacde25328e1","tests/serializing_floats.rs":"2a4a73cb8b4f92c7f3ae66926f7cc174d547af3ba5cef876193fa9b11fe2130f","tests/serializing_integers.rs":"70cc2836f5ea96e2ffe8f671cf64cc1f499ca703ca5d6b83fd2c2dd489503591","tests/serializing_maps.rs":"ed1ba4644f93c97c53969cbbcee082bdeb80ea42b034be5cb74706a66617f42a","tests/serializing_options.rs":"adec0f3cee27f8144b4eaab90c29ac02f72faf8d93a2b7ac2be1192904f4018d","tests/serializing_results.rs":"547106207266e648280bf60e4c8a36df50be0a7d467b59bf083d4accc9484d36","tests/serializing_strings.rs":"84cbbd43f497857be9129dc45184c827061b665dc88efd43702bd78f573de233","tests/serializing_structs.rs":"5287d45724a83ad0f075e54095fb71aeca45b228c745136f9159b157bdc2de6b","tests/serializing_tuples.rs":"a4ea4e188f59341a6c2bba4acc91848a32a113fadc1754e3c3a31a1322b04cf0","tests/serializing_vecs.rs":"fad941c4641fa142c80ce866633d0d37adfd3922783de5776b2dbd2aad3563bd"},"package":"c4a5121544138e6a14036e48ecbe589fb63577f35620caaa32642257b412c317"}
@@ -0,0 +1,6 @@
1
+ {
2
+ "git": {
3
+ "sha1": "0d583c6926757460a27e7bc99c07bd6139fc5350"
4
+ },
5
+ "path_in_vcs": ""
6
+ }