code_ownership 2.1.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (227) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +8 -14
  3. data/ext/cargo-vendor/magnus-0.8.2/.cargo-checksum.json +1 -0
  4. data/ext/cargo-vendor/magnus-0.8.2/.cargo_vcs_info.json +6 -0
  5. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/CHANGELOG.md +66 -1
  6. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/Cargo.lock +243 -9
  7. data/ext/cargo-vendor/magnus-0.8.2/Cargo.toml +277 -0
  8. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/Cargo.toml.orig +11 -6
  9. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/README.md +75 -23
  10. data/ext/cargo-vendor/magnus-0.8.2/build.rs +15 -0
  11. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/complete_object/test/temperature_test.rb +4 -4
  12. data/ext/cargo-vendor/magnus-0.8.2/examples/inheritance.rs +66 -0
  13. data/ext/cargo-vendor/magnus-0.8.2/examples/mut_point.rs +116 -0
  14. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/api.rs +4 -3
  15. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/class.rs +9 -7
  16. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/encoding.rs +5 -5
  17. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/error.rs +12 -3
  18. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/fiber.rs +5 -5
  19. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/gc.rs +3 -3
  20. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/integer.rs +134 -0
  21. data/ext/cargo-vendor/magnus-0.8.2/src/io.rs +230 -0
  22. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/lib.rs +53 -54
  23. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/macros.rs +2 -2
  24. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/method.rs +14 -100
  25. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/module.rs +1 -1
  26. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/mutex.rs +1 -1
  27. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_array.rs +2 -2
  28. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_bignum.rs +100 -3
  29. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_hash.rs +63 -1
  30. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_string.rs +31 -231
  31. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_typed_data.rs +6 -9
  32. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/rb_sys.rs +4 -4
  33. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/scan_args.rs +3 -3
  34. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/thread.rs +16 -10
  35. data/ext/cargo-vendor/magnus-0.8.2/src/time.rs +462 -0
  36. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/try_convert.rs +64 -2
  37. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/typed_data.rs +113 -11
  38. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/value/flonum.rs +1 -1
  39. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/value.rs +83 -6
  40. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/test +1 -1
  41. data/ext/cargo-vendor/magnus-0.8.2/tests/hash.rs +44 -0
  42. data/ext/cargo-vendor/magnus-0.8.2/tests/io.rs +62 -0
  43. data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/return_iter.rs +1 -1
  44. data/ext/cargo-vendor/magnus-0.8.2/tests/string.rs +23 -0
  45. data/ext/cargo-vendor/magnus-0.8.2/tests/time.rs +71 -0
  46. data/ext/cargo-vendor/magnus-macros-0.8.0/.cargo-checksum.json +1 -0
  47. data/ext/cargo-vendor/magnus-macros-0.8.0/.cargo_vcs_info.json +6 -0
  48. data/ext/cargo-vendor/magnus-macros-0.8.0/Cargo.lock +47 -0
  49. data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/Cargo.toml +10 -1
  50. data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/Cargo.toml.orig +1 -1
  51. data/ext/cargo-vendor/magnus-macros-0.8.0/src/lib.rs +545 -0
  52. data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/src/typed_data.rs +3 -3
  53. data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/src/util.rs +1 -1
  54. data/ext/cargo-vendor/serde_magnus-0.10.0/.cargo-checksum.json +1 -0
  55. data/ext/cargo-vendor/serde_magnus-0.10.0/.cargo_vcs_info.json +6 -0
  56. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/Cargo.lock +77 -75
  57. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/Cargo.toml +3 -3
  58. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/Cargo.toml.orig +7 -4
  59. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/README.md +8 -5
  60. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/array_deserializer.rs +12 -8
  61. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/array_enumerator.rs +12 -7
  62. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/deserializer.rs +21 -18
  63. data/ext/cargo-vendor/serde_magnus-0.10.0/src/de/enum_deserializer.rs +35 -0
  64. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/hash_deserializer.rs +18 -11
  65. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/mod.rs +76 -76
  66. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/de/variant_deserializer.rs +10 -9
  67. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/error.rs +10 -4
  68. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/lib.rs +6 -5
  69. data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/enums.rs +11 -0
  70. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/map_serializer.rs +11 -12
  71. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/mod.rs +53 -50
  72. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/seq_serializer.rs +11 -10
  73. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/src/ser/serializer.rs +50 -34
  74. data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/struct_serializer.rs +40 -0
  75. data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/struct_variant_serializer.rs +45 -0
  76. data/ext/cargo-vendor/serde_magnus-0.10.0/src/ser/tuple_variant_serializer.rs +38 -0
  77. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_arrays.rs +3 -3
  78. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_booleans.rs +15 -0
  79. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_enums.rs +39 -0
  80. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_floats.rs +12 -0
  81. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_integers.rs +18 -0
  82. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_maps.rs +3 -2
  83. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_options.rs +15 -0
  84. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_results.rs +17 -0
  85. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_strings.rs +7 -7
  86. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_structs.rs +9 -9
  87. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/deserializing_tuples.rs +27 -0
  88. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/deserializing_vecs.rs +3 -3
  89. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_arrays.rs +3 -3
  90. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/serializing_booleans.rs +15 -0
  91. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_enums.rs +9 -7
  92. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_floats.rs +2 -2
  93. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_integers.rs +4 -4
  94. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_maps.rs +3 -2
  95. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_options.rs +3 -3
  96. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_results.rs +5 -4
  97. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/serializing_strings.rs +30 -0
  98. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_structs.rs +15 -7
  99. data/ext/cargo-vendor/serde_magnus-0.10.0/tests/serializing_tuples.rs +35 -0
  100. data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/tests/serializing_vecs.rs +3 -3
  101. data/ext/code_ownership/Cargo.toml +2 -2
  102. data/ext/code_ownership/extconf.rb +2 -1
  103. data/ext/code_ownership/src/lib.rs +16 -16
  104. data/lib/code_ownership/cli.rb +1 -0
  105. data/lib/code_ownership/private/file_path_finder.rb +3 -7
  106. data/lib/code_ownership/private/file_path_team_cache.rb +5 -9
  107. data/lib/code_ownership/private/for_file_output_builder.rb +0 -1
  108. data/lib/code_ownership/private/team_finder.rb +8 -14
  109. data/lib/code_ownership/version.rb +2 -2
  110. data/lib/code_ownership.rb +12 -17
  111. metadata +182 -186
  112. data/ext/cargo-vendor/magnus-0.7.1/.cargo-checksum.json +0 -1
  113. data/ext/cargo-vendor/magnus-0.7.1/.cargo_vcs_info.json +0 -6
  114. data/ext/cargo-vendor/magnus-0.7.1/Cargo.toml +0 -95
  115. data/ext/cargo-vendor/magnus-0.7.1/build.rs +0 -5
  116. data/ext/cargo-vendor/magnus-0.7.1/examples/mut_point.rs +0 -60
  117. data/ext/cargo-vendor/magnus-0.7.1/src/time.rs +0 -190
  118. data/ext/cargo-vendor/magnus-0.7.1/tests/hash.rs +0 -25
  119. data/ext/cargo-vendor/magnus-0.7.1/tests/string.rs +0 -13
  120. data/ext/cargo-vendor/magnus-macros-0.6.0/.cargo-checksum.json +0 -1
  121. data/ext/cargo-vendor/magnus-macros-0.6.0/.cargo_vcs_info.json +0 -6
  122. data/ext/cargo-vendor/magnus-macros-0.6.0/src/lib.rs +0 -401
  123. data/ext/cargo-vendor/rb-sys-env-0.1.2/.cargo-checksum.json +0 -1
  124. data/ext/cargo-vendor/rb-sys-env-0.1.2/.cargo_vcs_info.json +0 -6
  125. data/ext/cargo-vendor/rb-sys-env-0.1.2/Cargo.toml +0 -25
  126. data/ext/cargo-vendor/rb-sys-env-0.1.2/Cargo.toml.orig +0 -14
  127. data/ext/cargo-vendor/rb-sys-env-0.1.2/LICENSE-APACHE +0 -190
  128. data/ext/cargo-vendor/rb-sys-env-0.1.2/LICENSE-MIT +0 -21
  129. data/ext/cargo-vendor/rb-sys-env-0.1.2/readme.md +0 -119
  130. data/ext/cargo-vendor/rb-sys-env-0.1.2/src/defines.rs +0 -37
  131. data/ext/cargo-vendor/rb-sys-env-0.1.2/src/lib.rs +0 -180
  132. data/ext/cargo-vendor/rb-sys-env-0.1.2/src/rb_env.rs +0 -110
  133. data/ext/cargo-vendor/rb-sys-env-0.1.2/src/ruby_version.rs +0 -163
  134. data/ext/cargo-vendor/rb-sys-env-0.1.2/src/utils.rs +0 -6
  135. data/ext/cargo-vendor/serde_magnus-0.9.0/.cargo-checksum.json +0 -1
  136. data/ext/cargo-vendor/serde_magnus-0.9.0/.cargo_vcs_info.json +0 -6
  137. data/ext/cargo-vendor/serde_magnus-0.9.0/src/de/enum_deserializer.rs +0 -30
  138. data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/enums.rs +0 -11
  139. data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/struct_serializer.rs +0 -36
  140. data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/struct_variant_serializer.rs +0 -37
  141. data/ext/cargo-vendor/serde_magnus-0.9.0/src/ser/tuple_variant_serializer.rs +0 -33
  142. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_booleans.rs +0 -18
  143. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_enums.rs +0 -39
  144. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_floats.rs +0 -12
  145. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_integers.rs +0 -18
  146. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_options.rs +0 -15
  147. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_results.rs +0 -17
  148. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/deserializing_tuples.rs +0 -31
  149. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/serializing_booleans.rs +0 -15
  150. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/serializing_strings.rs +0 -30
  151. data/ext/cargo-vendor/serde_magnus-0.9.0/tests/serializing_tuples.rs +0 -27
  152. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/.cargo/config.toml +0 -0
  153. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/Gemfile +0 -0
  154. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/LICENSE +0 -0
  155. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/complete_object/Rakefile +0 -0
  156. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/complete_object/lib/temperature.rb +0 -0
  157. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/Rakefile +0 -0
  158. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/lib/ahriman/error.rb +0 -0
  159. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/lib/ahriman.rb +0 -0
  160. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_ruby/test/error_test.rb +0 -0
  161. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_rust/Rakefile +0 -0
  162. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_rust/lib/ahriman.rb +0 -0
  163. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/custom_exception_rust/test/error_test.rb +0 -0
  164. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/fibonacci.rs +0 -0
  165. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/hello_world.rs +0 -0
  166. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/point.rs +0 -0
  167. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/Rakefile +0 -0
  168. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/lib/rust_blank.rb +0 -0
  169. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/test/bench.rb +0 -0
  170. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/examples/rust_blank/test/blank_test.rb +0 -0
  171. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/block.rs +0 -0
  172. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/embed.rs +0 -0
  173. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/enumerator.rs +0 -0
  174. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/exception.rs +0 -0
  175. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/float.rs +0 -0
  176. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/into_value.rs +0 -0
  177. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/numeric.rs +0 -0
  178. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/object.rs +0 -0
  179. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/process.rs +0 -0
  180. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_complex.rs +0 -0
  181. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_file.rs +0 -0
  182. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_float.rs +0 -0
  183. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_match.rs +0 -0
  184. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_object.rs +0 -0
  185. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_rational.rs +0 -0
  186. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_regexp.rs +0 -0
  187. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/r_struct.rs +0 -0
  188. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/range.rs +0 -0
  189. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/src/symbol.rs +0 -0
  190. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/allocate_before_init.rs +0 -0
  191. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/array_slice.rs +0 -0
  192. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/block_call.rs +0 -0
  193. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/bytes.rs +0 -0
  194. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/call_proc.rs +0 -0
  195. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/classname.rs +0 -0
  196. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/clone.rs +0 -0
  197. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/codepoints.rs +0 -0
  198. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/debug_exception.rs +0 -0
  199. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/encoding_capable.rs +0 -0
  200. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/enumerator.rs +0 -0
  201. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/enumeratorize.rs +0 -0
  202. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/float_convert_from_value.rs +0 -0
  203. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/float_convert_to_value.rs +0 -0
  204. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/fmt.rs +0 -0
  205. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/freeze.rs +0 -0
  206. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/integer_convert_to_value.rs +0 -0
  207. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/integer_traits.rs +0 -0
  208. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/ivar.rs +0 -0
  209. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/lazy_id.rs +0 -0
  210. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/make_proc.rs +0 -0
  211. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/proc_new.rs +0 -0
  212. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/range.rs +0 -0
  213. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/return_custom_error.rs +0 -0
  214. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/scan_args.rs +0 -0
  215. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/str.rs +0 -0
  216. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/struct.rs +0 -0
  217. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/symbol.rs +0 -0
  218. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/try_convert_array.rs +0 -0
  219. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/tuple_to_array.rs +0 -0
  220. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data.rs +0 -0
  221. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data_obj.rs +0 -0
  222. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data_subclass.rs +0 -0
  223. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/typed_data_subclass_from_ruby.rs +0 -0
  224. /data/ext/cargo-vendor/{magnus-0.7.1 → magnus-0.8.2}/tests/yield.rs +0 -0
  225. /data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/LICENSE +0 -0
  226. /data/ext/cargo-vendor/{magnus-macros-0.6.0 → magnus-macros-0.8.0}/src/init.rs +0 -0
  227. /data/ext/cargo-vendor/{serde_magnus-0.9.0 → serde_magnus-0.10.0}/LICENSE +0 -0
@@ -1,26 +1,25 @@
1
1
  use super::Serializer;
2
2
  use crate::error::Error;
3
- use magnus::{
4
- value::{qnil, ReprValue},
5
- IntoValue, RHash, Value,
6
- };
3
+ use magnus::{value::ReprValue, IntoValue, RHash, Ruby, Value};
7
4
  use serde::{ser::SerializeMap, Serialize};
8
5
 
9
- pub struct MapSerializer {
6
+ pub struct MapSerializer<'r> {
7
+ ruby: &'r Ruby,
10
8
  hash: RHash,
11
9
  key: Value,
12
10
  }
13
11
 
14
- impl MapSerializer {
15
- pub fn new(hash: RHash) -> MapSerializer {
12
+ impl<'r> MapSerializer<'r> {
13
+ pub fn new(ruby: &'r Ruby, hash: RHash) -> MapSerializer<'r> {
16
14
  MapSerializer {
15
+ ruby,
17
16
  hash,
18
- key: qnil().as_value(),
17
+ key: ruby.qnil().as_value(),
19
18
  }
20
19
  }
21
20
  }
22
21
 
23
- impl SerializeMap for MapSerializer {
22
+ impl<'r> SerializeMap for MapSerializer<'r> {
24
23
  type Ok = Value;
25
24
  type Error = Error;
26
25
 
@@ -28,7 +27,7 @@ impl SerializeMap for MapSerializer {
28
27
  where
29
28
  Key: Serialize + ?Sized,
30
29
  {
31
- self.key = key.serialize(Serializer)?;
30
+ self.key = key.serialize(Serializer::new(self.ruby))?;
32
31
  Ok(())
33
32
  }
34
33
 
@@ -37,11 +36,11 @@ impl SerializeMap for MapSerializer {
37
36
  Value: Serialize + ?Sized,
38
37
  {
39
38
  self.hash
40
- .aset(self.key, value.serialize(Serializer)?)
39
+ .aset(self.key, value.serialize(Serializer::new(self.ruby))?)
41
40
  .map_err(Into::into)
42
41
  }
43
42
 
44
43
  fn end(self) -> Result<Self::Ok, Self::Error> {
45
- Ok(self.hash.into_value())
44
+ Ok(self.hash.into_value_with(self.ruby))
46
45
  }
47
46
  }
@@ -15,7 +15,7 @@ use self::{
15
15
  tuple_variant_serializer::TupleVariantSerializer,
16
16
  };
17
17
 
18
- use magnus::{Error, TryConvert};
18
+ use magnus::{Error, Ruby, TryConvert};
19
19
  use serde::Serialize;
20
20
 
21
21
  /// Serialize Rust data to a Ruby [`Value`][`magnus::Value`].
@@ -35,16 +35,16 @@ use serde::Serialize;
35
35
  /// | `&[u8]` | A `String` with ASCII-8BIT encoding |
36
36
  ///
37
37
  /// ```
38
- /// # let _cleanup = unsafe { magnus::embed::init() };
38
+ /// # let ruby = unsafe { magnus::embed::init() };
39
39
  /// #
40
40
  /// use magnus::{eval, Value};
41
41
  /// use serde_magnus::serialize;
42
42
  ///
43
- /// let output: Value = serialize(&1234)?;
44
- /// assert!(eval!("output == 1234", output)?);
43
+ /// let output: Value = serialize(&ruby, &1234)?;
44
+ /// assert!(eval!(&ruby, "output == 1234", output)?);
45
45
  ///
46
- /// let output: Value = serialize("Hello, world!")?;
47
- /// assert!(eval!("output == 'Hello, world!'", output)?);
46
+ /// let output: Value = serialize(&ruby, "Hello, world!")?;
47
+ /// assert!(eval!(&ruby, "output == 'Hello, world!'", output)?);
48
48
  /// #
49
49
  /// # Ok::<(), magnus::Error>(())
50
50
  /// ```
@@ -57,15 +57,15 @@ use serde::Serialize;
57
57
  /// # use magnus::{eval, Value};
58
58
  /// # use serde_magnus::serialize;
59
59
  /// #
60
- /// # let _cleanup = unsafe { magnus::embed::init() };
60
+ /// # let ruby = unsafe { magnus::embed::init() };
61
61
  /// #
62
62
  /// let input: Option<u64> = None;
63
- /// let output: Value = serialize(&input)?;
64
- /// assert!(eval!("output == nil", output)?);
63
+ /// let output: Value = serialize(&ruby, &input)?;
64
+ /// assert!(eval!(&ruby, "output == nil", output)?);
65
65
  ///
66
66
  /// let input: Option<u64> = Some(1234);
67
- /// let output: Value = serialize(&input)?;
68
- /// assert!(eval!("output == 1234", output)?);
67
+ /// let output: Value = serialize(&ruby, &input)?;
68
+ /// assert!(eval!(&ruby, "output == 1234", output)?);
69
69
  /// #
70
70
  /// # Ok::<(), magnus::Error>(())
71
71
  /// ```
@@ -78,15 +78,15 @@ use serde::Serialize;
78
78
  /// # use magnus::{eval, Value};
79
79
  /// # use serde_magnus::serialize;
80
80
  /// #
81
- /// # let _cleanup = unsafe { magnus::embed::init() };
81
+ /// # let ruby = unsafe { magnus::embed::init() };
82
82
  /// #
83
83
  /// let input: Result<u64, &str> = Ok(1234);
84
- /// let output: Value = serialize(&input)?;
85
- /// assert!(eval!("output == { 'Ok' => 1234 }", output)?);
84
+ /// let output: Value = serialize(&ruby, &input)?;
85
+ /// assert!(eval!(&ruby, "output == { 'Ok' => 1234 }", output)?);
86
86
  ///
87
87
  /// let input: Result<u64, &str> = Err("something went wrong");
88
- /// let output: Value = serialize(&input)?;
89
- /// assert!(eval!("output == { 'Err' => 'something went wrong' }", output)?);
88
+ /// let output: Value = serialize(&ruby, &input)?;
89
+ /// assert!(eval!(&ruby, "output == { 'Err' => 'something went wrong' }", output)?);
90
90
  /// #
91
91
  /// # Ok::<(), magnus::Error>(())
92
92
  /// ```
@@ -99,15 +99,15 @@ use serde::Serialize;
99
99
  /// # use magnus::{eval, Value};
100
100
  /// # use serde_magnus::serialize;
101
101
  /// #
102
- /// # let _cleanup = unsafe { magnus::embed::init() };
102
+ /// # let ruby = unsafe { magnus::embed::init() };
103
103
  /// #
104
104
  /// use serde::Serialize;
105
105
  ///
106
106
  /// #[derive(Serialize)]
107
107
  /// struct Foo;
108
108
  ///
109
- /// let output: Value = serialize(&Foo)?;
110
- /// assert!(eval!("output == nil", output)?);
109
+ /// let output: Value = serialize(&ruby, &Foo)?;
110
+ /// assert!(eval!(&ruby, "output == nil", output)?);
111
111
  /// #
112
112
  /// # Ok::<(), magnus::Error>(())
113
113
  /// ```
@@ -119,14 +119,14 @@ use serde::Serialize;
119
119
  /// # use serde::Serialize;
120
120
  /// # use serde_magnus::serialize;
121
121
  /// #
122
- /// # let _cleanup = unsafe { magnus::embed::init() };
122
+ /// # let ruby = unsafe { magnus::embed::init() };
123
123
  /// #
124
124
  /// #[derive(Serialize)]
125
125
  /// struct Foo(u16);
126
126
  ///
127
127
  /// let input = Foo(1234);
128
- /// let output: Value = serialize(&input)?;
129
- /// assert!(eval!("output == 1234", output)?);
128
+ /// let output: Value = serialize(&ruby, &input)?;
129
+ /// assert!(eval!(&ruby, "output == 1234", output)?);
130
130
  /// #
131
131
  /// # Ok::<(), magnus::Error>(())
132
132
  /// ```
@@ -138,14 +138,14 @@ use serde::Serialize;
138
138
  /// # use serde::Serialize;
139
139
  /// # use serde_magnus::serialize;
140
140
  /// #
141
- /// # let _cleanup = unsafe { magnus::embed::init() };
141
+ /// # let ruby = unsafe { magnus::embed::init() };
142
142
  /// #
143
143
  /// #[derive(Serialize)]
144
144
  /// struct Foo<'a>(u16, bool, &'a str);
145
145
  ///
146
146
  /// let input = Foo(1234, false, "Hello, world!");
147
- /// let output: Value = serialize(&input)?;
148
- /// assert!(eval!("output == [1234, false, 'Hello, world!']", output)?);
147
+ /// let output: Value = serialize(&ruby, &input)?;
148
+ /// assert!(eval!(&ruby, "output == [1234, false, 'Hello, world!']", output)?);
149
149
  /// #
150
150
  /// # Ok::<(), magnus::Error>(())
151
151
  /// ```
@@ -157,7 +157,7 @@ use serde::Serialize;
157
157
  /// # use serde::Serialize;
158
158
  /// # use serde_magnus::serialize;
159
159
  /// #
160
- /// # let _cleanup = unsafe { magnus::embed::init() };
160
+ /// # let ruby = unsafe { magnus::embed::init() };
161
161
  /// #
162
162
  /// #[derive(Serialize)]
163
163
  /// struct Foo<'a> {
@@ -167,8 +167,9 @@ use serde::Serialize;
167
167
  /// }
168
168
  ///
169
169
  /// let input = Foo { bar: 1234, baz: false, glorp: "Hello, world!" };
170
- /// let output: Value = serialize(&input)?;
170
+ /// let output: Value = serialize(&ruby, &input)?;
171
171
  /// assert!(eval!(
172
+ /// &ruby,
172
173
  /// r#"
173
174
  /// output == {
174
175
  /// bar: 1234,
@@ -207,7 +208,7 @@ use serde::Serialize;
207
208
  /// # use serde::Serialize;
208
209
  /// # use serde_magnus::serialize;
209
210
  /// #
210
- /// # let _cleanup = unsafe { magnus::embed::init() };
211
+ /// # let ruby = unsafe { magnus::embed::init() };
211
212
  /// #
212
213
  /// # #[derive(Serialize)]
213
214
  /// # enum Foo<'a> {
@@ -221,8 +222,8 @@ use serde::Serialize;
221
222
  /// # }
222
223
  /// # }
223
224
  /// #
224
- /// let output: Value = serialize(&Foo::Bar)?;
225
- /// assert!(eval!("output == 'Bar'", output)?);
225
+ /// let output: Value = serialize(&ruby, &Foo::Bar)?;
226
+ /// assert!(eval!(&ruby, "output == 'Bar'", output)?);
226
227
  /// #
227
228
  /// # Ok::<(), magnus::Error>(())
228
229
  /// ```
@@ -237,7 +238,7 @@ use serde::Serialize;
237
238
  /// # use serde::Serialize;
238
239
  /// # use serde_magnus::serialize;
239
240
  /// #
240
- /// # let _cleanup = unsafe { magnus::embed::init() };
241
+ /// # let ruby = unsafe { magnus::embed::init() };
241
242
  /// #
242
243
  /// # #[derive(Serialize)]
243
244
  /// # enum Foo<'a> {
@@ -252,8 +253,8 @@ use serde::Serialize;
252
253
  /// # }
253
254
  /// #
254
255
  /// let input = Foo::Baz(1234);
255
- /// let output: Value = serialize(&input)?;
256
- /// assert!(eval!("output == { 'Baz' => 1234 }", output)?);
256
+ /// let output: Value = serialize(&ruby, &input)?;
257
+ /// assert!(eval!(&ruby, "output == { 'Baz' => 1234 }", output)?);
257
258
  /// #
258
259
  /// # Ok::<(), magnus::Error>(())
259
260
  /// ```
@@ -265,7 +266,7 @@ use serde::Serialize;
265
266
  /// # use serde::Serialize;
266
267
  /// # use serde_magnus::serialize;
267
268
  /// #
268
- /// # let _cleanup = unsafe { magnus::embed::init() };
269
+ /// # let ruby = unsafe { magnus::embed::init() };
269
270
  /// #
270
271
  /// # #[derive(Serialize)]
271
272
  /// # enum Foo<'a> {
@@ -280,8 +281,8 @@ use serde::Serialize;
280
281
  /// # }
281
282
  /// #
282
283
  /// let input = Foo::Glorp(1234, false, "Hello, world!");
283
- /// let output: Value = serialize(&input)?;
284
- /// assert!(eval!("output == { 'Glorp' => [1234, false, 'Hello, world!'] }", output)?);
284
+ /// let output: Value = serialize(&ruby, &input)?;
285
+ /// assert!(eval!(&ruby, "output == { 'Glorp' => [1234, false, 'Hello, world!'] }", output)?);
285
286
  /// #
286
287
  /// # Ok::<(), magnus::Error>(())
287
288
  /// ```
@@ -293,7 +294,7 @@ use serde::Serialize;
293
294
  /// # use serde::Serialize;
294
295
  /// # use serde_magnus::serialize;
295
296
  /// #
296
- /// # let _cleanup = unsafe { magnus::embed::init() };
297
+ /// # let ruby = unsafe { magnus::embed::init() };
297
298
  /// #
298
299
  /// # #[derive(Serialize)]
299
300
  /// # enum Foo<'a> {
@@ -308,8 +309,9 @@ use serde::Serialize;
308
309
  /// # }
309
310
  /// #
310
311
  /// let input = Foo::Quux { frob: 1234, wally: false, plugh: "Hello, world!" };
311
- /// let output: Value = serialize(&input)?;
312
+ /// let output: Value = serialize(&ruby, &input)?;
312
313
  /// assert!(eval!(
314
+ /// &ruby,
313
315
  /// r#"
314
316
  /// output == {
315
317
  /// "Quux" => {
@@ -334,15 +336,15 @@ use serde::Serialize;
334
336
  /// # use magnus::{eval, Value};
335
337
  /// # use serde_magnus::serialize;
336
338
  /// #
337
- /// # let _cleanup = unsafe { magnus::embed::init() };
339
+ /// # let ruby = unsafe { magnus::embed::init() };
338
340
  /// #
339
341
  /// let input = (123, false, "Hello, world!");
340
- /// let output: Value = serialize(&input)?;
341
- /// assert!(eval!("output == [123, false, 'Hello, world!']", output)?);
342
+ /// let output: Value = serialize(&ruby, &input)?;
343
+ /// assert!(eval!(&ruby, "output == [123, false, 'Hello, world!']", output)?);
342
344
  ///
343
345
  /// let input = [123, 456, 789];
344
- /// let output: Value = serialize(&input)?;
345
- /// assert!(eval!("output == [123, 456, 789]", output)?);
346
+ /// let output: Value = serialize(&ruby, &input)?;
347
+ /// assert!(eval!(&ruby, "output == [123, 456, 789]", output)?);
346
348
  /// #
347
349
  /// # Ok::<(), magnus::Error>(())
348
350
  /// ```
@@ -355,11 +357,11 @@ use serde::Serialize;
355
357
  /// # use magnus::{eval, Value};
356
358
  /// # use serde_magnus::serialize;
357
359
  /// #
358
- /// # let _cleanup = unsafe { magnus::embed::init() };
360
+ /// # let ruby = unsafe { magnus::embed::init() };
359
361
  /// #
360
362
  /// let input = vec![123, 456, 789];
361
- /// let output: Value = serialize(&input)?;
362
- /// assert!(eval!("output == [123, 456, 789]", output)?);
363
+ /// let output: Value = serialize(&ruby, &input)?;
364
+ /// assert!(eval!(&ruby, "output == [123, 456, 789]", output)?);
363
365
  /// #
364
366
  /// # Ok::<(), magnus::Error>(())
365
367
  /// ```
@@ -370,7 +372,7 @@ use serde::Serialize;
370
372
  /// # use magnus::{eval, Value};
371
373
  /// # use serde_magnus::serialize;
372
374
  /// #
373
- /// # let _cleanup = unsafe { magnus::embed::init() };
375
+ /// # let ruby = unsafe { magnus::embed::init() };
374
376
  /// #
375
377
  /// use std::collections::HashMap;
376
378
  ///
@@ -380,8 +382,9 @@ use serde::Serialize;
380
382
  /// input.insert("high", "low");
381
383
  /// input.insert("goodbye", "hello");
382
384
  ///
383
- /// let output: Value = serialize(&input)?;
385
+ /// let output: Value = serialize(&ruby, &input)?;
384
386
  /// assert!(eval!(
387
+ /// &ruby,
385
388
  /// r#"
386
389
  /// output == {
387
390
  /// "yes" => "no",
@@ -395,10 +398,10 @@ use serde::Serialize;
395
398
  /// #
396
399
  /// # Ok::<(), magnus::Error>(())
397
400
  /// ```
398
- pub fn serialize<Input, Output>(input: &Input) -> Result<Output, Error>
401
+ pub fn serialize<Input, Output>(ruby: &Ruby, input: &Input) -> Result<Output, Error>
399
402
  where
400
403
  Input: Serialize + ?Sized,
401
404
  Output: TryConvert,
402
405
  {
403
- TryConvert::try_convert(input.serialize(Serializer)?)
406
+ TryConvert::try_convert(input.serialize(Serializer::new(ruby))?)
404
407
  }
@@ -1,22 +1,23 @@
1
1
  use super::Serializer;
2
2
  use crate::error::Error;
3
- use magnus::{IntoValue, RArray, Value};
3
+ use magnus::{IntoValue, RArray, Ruby, Value};
4
4
  use serde::{
5
5
  ser::{SerializeSeq, SerializeTuple, SerializeTupleStruct},
6
6
  Serialize,
7
7
  };
8
8
 
9
- pub struct SeqSerializer {
9
+ pub struct SeqSerializer<'r> {
10
+ ruby: &'r Ruby,
10
11
  array: RArray,
11
12
  }
12
13
 
13
- impl SeqSerializer {
14
- pub fn new(array: RArray) -> SeqSerializer {
15
- SeqSerializer { array }
14
+ impl<'r> SeqSerializer<'r> {
15
+ pub fn new(ruby: &'r Ruby, array: RArray) -> SeqSerializer<'r> {
16
+ SeqSerializer { ruby, array }
16
17
  }
17
18
  }
18
19
 
19
- impl SerializeSeq for SeqSerializer {
20
+ impl<'r> SerializeSeq for SeqSerializer<'r> {
20
21
  type Ok = Value;
21
22
  type Error = Error;
22
23
 
@@ -25,16 +26,16 @@ impl SerializeSeq for SeqSerializer {
25
26
  Element: Serialize + ?Sized,
26
27
  {
27
28
  self.array
28
- .push(element.serialize(Serializer)?)
29
+ .push(element.serialize(Serializer::new(self.ruby))?)
29
30
  .map_err(Into::into)
30
31
  }
31
32
 
32
33
  fn end(self) -> Result<Self::Ok, self::Error> {
33
- Ok(self.array.into_value())
34
+ Ok(self.array.into_value_with(self.ruby))
34
35
  }
35
36
  }
36
37
 
37
- impl SerializeTuple for SeqSerializer {
38
+ impl<'r> SerializeTuple for SeqSerializer<'r> {
38
39
  type Ok = Value;
39
40
  type Error = Error;
40
41
 
@@ -50,7 +51,7 @@ impl SerializeTuple for SeqSerializer {
50
51
  }
51
52
  }
52
53
 
53
- impl SerializeTupleStruct for SeqSerializer {
54
+ impl<'r> SerializeTupleStruct for SeqSerializer<'r> {
54
55
  type Ok = Value;
55
56
  type Error = Error;
56
57
 
@@ -1,4 +1,4 @@
1
- use magnus::{IntoValue, RArray, RHash, RString, Value};
1
+ use magnus::{IntoValue, Ruby, Value};
2
2
  use serde::Serialize;
3
3
 
4
4
  use super::{
@@ -7,78 +7,86 @@ use super::{
7
7
  };
8
8
  use crate::error::Error;
9
9
 
10
- pub struct Serializer;
10
+ pub struct Serializer<'r> {
11
+ ruby: &'r Ruby,
12
+ }
13
+
14
+ impl<'r> Serializer<'r> {
15
+ pub fn new(ruby: &'r Ruby) -> Self {
16
+ Self { ruby }
17
+ }
18
+ }
11
19
 
12
- impl serde::Serializer for Serializer {
20
+ impl<'r> serde::Serializer for Serializer<'r> {
13
21
  type Ok = Value;
14
22
  type Error = Error;
15
23
 
16
- type SerializeSeq = SeqSerializer;
17
- type SerializeTuple = SeqSerializer;
18
- type SerializeTupleStruct = SeqSerializer;
19
- type SerializeTupleVariant = TupleVariantSerializer;
20
- type SerializeMap = MapSerializer;
21
- type SerializeStruct = StructSerializer;
22
- type SerializeStructVariant = StructVariantSerializer;
24
+ type SerializeSeq = SeqSerializer<'r>;
25
+ type SerializeTuple = SeqSerializer<'r>;
26
+ type SerializeTupleStruct = SeqSerializer<'r>;
27
+ type SerializeTupleVariant = TupleVariantSerializer<'r>;
28
+ type SerializeMap = MapSerializer<'r>;
29
+ type SerializeStruct = StructSerializer<'r>;
30
+ type SerializeStructVariant = StructVariantSerializer<'r>;
23
31
 
24
32
  fn serialize_bool(self, value: bool) -> Result<Self::Ok, Self::Error> {
25
- Ok(value.into_value())
33
+ Ok(value.into_value_with(self.ruby))
26
34
  }
27
35
 
28
36
  fn serialize_i8(self, value: i8) -> Result<Self::Ok, Self::Error> {
29
- Ok(value.into_value())
37
+ Ok(value.into_value_with(self.ruby))
30
38
  }
31
39
 
32
40
  fn serialize_i16(self, value: i16) -> Result<Self::Ok, Self::Error> {
33
- Ok(value.into_value())
41
+ Ok(value.into_value_with(self.ruby))
34
42
  }
35
43
 
36
44
  fn serialize_i32(self, value: i32) -> Result<Self::Ok, Self::Error> {
37
- Ok(value.into_value())
45
+ Ok(value.into_value_with(self.ruby))
38
46
  }
39
47
 
40
48
  fn serialize_i64(self, value: i64) -> Result<Self::Ok, Self::Error> {
41
- Ok(value.into_value())
49
+ Ok(value.into_value_with(self.ruby))
42
50
  }
43
51
 
44
52
  fn serialize_u8(self, value: u8) -> Result<Self::Ok, Self::Error> {
45
- Ok(value.into_value())
53
+ Ok(value.into_value_with(self.ruby))
46
54
  }
47
55
 
48
56
  fn serialize_u16(self, value: u16) -> Result<Self::Ok, Self::Error> {
49
- Ok(value.into_value())
57
+ Ok(value.into_value_with(self.ruby))
50
58
  }
51
59
 
52
60
  fn serialize_u32(self, value: u32) -> Result<Self::Ok, Self::Error> {
53
- Ok(value.into_value())
61
+ Ok(value.into_value_with(self.ruby))
54
62
  }
55
63
 
56
64
  fn serialize_u64(self, value: u64) -> Result<Self::Ok, Self::Error> {
57
- Ok(value.into_value())
65
+ Ok(value.into_value_with(self.ruby))
58
66
  }
59
67
 
60
68
  fn serialize_f32(self, value: f32) -> Result<Self::Ok, Self::Error> {
61
- Ok(value.into_value())
69
+ Ok(value.into_value_with(self.ruby))
62
70
  }
63
71
 
64
72
  fn serialize_f64(self, value: f64) -> Result<Self::Ok, Self::Error> {
65
- Ok(value.into_value())
73
+ Ok(value.into_value_with(self.ruby))
66
74
  }
67
75
 
68
76
  fn serialize_char(self, value: char) -> Result<Self::Ok, Self::Error> {
69
- Ok(value.into_value())
77
+ Ok(value.into_value_with(self.ruby))
70
78
  }
71
79
 
72
80
  fn serialize_str(self, value: &str) -> Result<Self::Ok, Self::Error> {
73
- Ok(value.into_value())
81
+ Ok(value.into_value_with(self.ruby))
74
82
  }
75
83
 
76
84
  fn serialize_bytes(self, value: &[u8]) -> Result<Self::Ok, Self::Error> {
77
- Ok(RString::from_slice(value).into_value())
85
+ Ok(self.ruby.str_from_slice(value).into_value_with(self.ruby))
78
86
  }
79
87
 
80
88
  fn serialize_none(self) -> Result<Self::Ok, Self::Error> {
81
- Ok(().into_value())
89
+ Ok(().into_value_with(self.ruby))
82
90
  }
83
91
 
84
92
  fn serialize_some<Value>(self, value: &Value) -> Result<Self::Ok, Self::Error>
@@ -89,11 +97,11 @@ impl serde::Serializer for Serializer {
89
97
  }
90
98
 
91
99
  fn serialize_unit(self) -> Result<Self::Ok, Self::Error> {
92
- Ok(().into_value())
100
+ Ok(().into_value_with(self.ruby))
93
101
  }
94
102
 
95
103
  fn serialize_unit_struct(self, _name: &'static str) -> Result<Self::Ok, Self::Error> {
96
- Ok(().into_value())
104
+ Ok(().into_value_with(self.ruby))
97
105
  }
98
106
 
99
107
  fn serialize_unit_variant(
@@ -102,7 +110,7 @@ impl serde::Serializer for Serializer {
102
110
  _index: u32,
103
111
  variant: &'static str,
104
112
  ) -> Result<Self::Ok, Self::Error> {
105
- Ok(variant.into_value())
113
+ Ok(variant.into_value_with(self.ruby))
106
114
  }
107
115
 
108
116
  fn serialize_newtype_struct<Value>(
@@ -126,11 +134,14 @@ impl serde::Serializer for Serializer {
126
134
  where
127
135
  Value: Serialize + ?Sized,
128
136
  {
129
- nest(variant, value.serialize(self)?)
137
+ nest(self.ruby, variant, value.serialize(self)?)
130
138
  }
131
139
 
132
140
  fn serialize_seq(self, len: Option<usize>) -> Result<Self::SerializeSeq, Self::Error> {
133
- Ok(SeqSerializer::new(RArray::with_capacity(len.unwrap_or(0))))
141
+ Ok(SeqSerializer::new(
142
+ self.ruby,
143
+ self.ruby.ary_new_capa(len.unwrap_or(0)),
144
+ ))
134
145
  }
135
146
 
136
147
  fn serialize_tuple(self, len: usize) -> Result<Self::SerializeTuple, Self::Error> {
@@ -153,13 +164,14 @@ impl serde::Serializer for Serializer {
153
164
  len: usize,
154
165
  ) -> Result<Self::SerializeTupleVariant, Self::Error> {
155
166
  Ok(TupleVariantSerializer::new(
167
+ self.ruby,
156
168
  variant,
157
- RArray::with_capacity(len),
169
+ self.ruby.ary_new_capa(len),
158
170
  ))
159
171
  }
160
172
 
161
173
  fn serialize_map(self, _len: Option<usize>) -> Result<Self::SerializeMap, Self::Error> {
162
- Ok(MapSerializer::new(RHash::new()))
174
+ Ok(MapSerializer::new(self.ruby, self.ruby.hash_new()))
163
175
  }
164
176
 
165
177
  fn serialize_struct(
@@ -167,7 +179,7 @@ impl serde::Serializer for Serializer {
167
179
  _name: &'static str,
168
180
  _len: usize,
169
181
  ) -> Result<Self::SerializeStruct, Self::Error> {
170
- Ok(StructSerializer::new(RHash::new()))
182
+ Ok(StructSerializer::new(self.ruby, self.ruby.hash_new()))
171
183
  }
172
184
 
173
185
  fn serialize_struct_variant(
@@ -177,6 +189,10 @@ impl serde::Serializer for Serializer {
177
189
  variant: &'static str,
178
190
  _len: usize,
179
191
  ) -> Result<Self::SerializeStructVariant, Self::Error> {
180
- Ok(StructVariantSerializer::new(variant, RHash::new()))
192
+ Ok(StructVariantSerializer::new(
193
+ self.ruby,
194
+ variant,
195
+ self.ruby.hash_new(),
196
+ ))
181
197
  }
182
198
  }
@@ -0,0 +1,40 @@
1
+ use super::Serializer;
2
+ use crate::error::Error;
3
+ use magnus::{IntoValue, RHash, Ruby, Value};
4
+ use serde::{ser::SerializeStruct, Serialize};
5
+
6
+ pub struct StructSerializer<'r> {
7
+ ruby: &'r Ruby,
8
+ hash: RHash,
9
+ }
10
+
11
+ impl<'r> StructSerializer<'r> {
12
+ pub fn new(ruby: &'r Ruby, hash: RHash) -> StructSerializer<'r> {
13
+ StructSerializer { ruby, hash }
14
+ }
15
+ }
16
+
17
+ impl<'r> SerializeStruct for StructSerializer<'r> {
18
+ type Ok = Value;
19
+ type Error = Error;
20
+
21
+ fn serialize_field<Value>(
22
+ &mut self,
23
+ name: &'static str,
24
+ value: &Value,
25
+ ) -> Result<(), Self::Error>
26
+ where
27
+ Value: Serialize + ?Sized,
28
+ {
29
+ self.hash
30
+ .aset(
31
+ self.ruby.to_symbol(name),
32
+ value.serialize(Serializer::new(self.ruby))?,
33
+ )
34
+ .map_err(Into::into)
35
+ }
36
+
37
+ fn end(self) -> Result<Self::Ok, Self::Error> {
38
+ Ok(self.hash.into_value_with(self.ruby))
39
+ }
40
+ }