code_ownership 2.1.4 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1159) hide show
  1. checksums.yaml +4 -4
  2. data/.cargo/config +2 -2
  3. data/Cargo.lock +36 -86
  4. data/bin/codeownership +1 -0
  5. data/ext/cargo-vendor/bindgen-0.72.1/.cargo-checksum.json +1 -0
  6. data/ext/cargo-vendor/bindgen-0.72.1/.cargo_vcs_info.json +6 -0
  7. data/ext/cargo-vendor/bindgen-0.72.1/Cargo.lock +485 -0
  8. data/ext/cargo-vendor/bindgen-0.72.1/Cargo.toml +189 -0
  9. data/ext/cargo-vendor/bindgen-0.72.1/Cargo.toml.orig +72 -0
  10. data/ext/cargo-vendor/bindgen-0.72.1/README.md +89 -0
  11. data/ext/cargo-vendor/bindgen-0.72.1/build.rs +29 -0
  12. data/ext/cargo-vendor/bindgen-0.72.1/callbacks.rs +317 -0
  13. data/ext/cargo-vendor/bindgen-0.72.1/clang.rs +2448 -0
  14. data/ext/cargo-vendor/bindgen-0.72.1/codegen/bitfield_unit.rs +112 -0
  15. data/ext/cargo-vendor/bindgen-0.72.1/codegen/bitfield_unit_raw_ref_macros.rs +191 -0
  16. data/ext/cargo-vendor/bindgen-0.72.1/codegen/bitfield_unit_tests.rs +260 -0
  17. data/ext/cargo-vendor/bindgen-0.72.1/codegen/dyngen.rs +258 -0
  18. data/ext/cargo-vendor/bindgen-0.72.1/codegen/error.rs +52 -0
  19. data/ext/cargo-vendor/bindgen-0.72.1/codegen/helpers.rs +395 -0
  20. data/ext/cargo-vendor/bindgen-0.72.1/codegen/impl_debug.rs +243 -0
  21. data/ext/cargo-vendor/bindgen-0.72.1/codegen/impl_partialeq.rs +142 -0
  22. data/ext/cargo-vendor/bindgen-0.72.1/codegen/mod.rs +5991 -0
  23. data/ext/cargo-vendor/bindgen-0.72.1/codegen/postprocessing/merge_extern_blocks.rs +72 -0
  24. data/ext/cargo-vendor/bindgen-0.72.1/codegen/postprocessing/sort_semantically.rs +46 -0
  25. data/ext/cargo-vendor/bindgen-0.72.1/codegen/serialize.rs +443 -0
  26. data/ext/cargo-vendor/bindgen-0.72.1/codegen/struct_layout.rs +458 -0
  27. data/ext/cargo-vendor/bindgen-0.72.1/deps.rs +61 -0
  28. data/ext/cargo-vendor/bindgen-0.72.1/diagnostics.rs +146 -0
  29. data/ext/cargo-vendor/bindgen-0.72.1/extra_assertions.rs +17 -0
  30. data/ext/cargo-vendor/bindgen-0.72.1/features.rs +570 -0
  31. data/ext/cargo-vendor/bindgen-0.72.1/ir/analysis/derive.rs +726 -0
  32. data/ext/cargo-vendor/bindgen-0.72.1/ir/analysis/has_destructor.rs +175 -0
  33. data/ext/cargo-vendor/bindgen-0.72.1/ir/analysis/has_float.rs +248 -0
  34. data/ext/cargo-vendor/bindgen-0.72.1/ir/analysis/has_type_param_in_array.rs +242 -0
  35. data/ext/cargo-vendor/bindgen-0.72.1/ir/analysis/has_vtable.rs +235 -0
  36. data/ext/cargo-vendor/bindgen-0.72.1/ir/analysis/mod.rs +395 -0
  37. data/ext/cargo-vendor/bindgen-0.72.1/ir/analysis/sizedness.rs +353 -0
  38. data/ext/cargo-vendor/bindgen-0.72.1/ir/analysis/template_params.rs +601 -0
  39. data/ext/cargo-vendor/bindgen-0.72.1/ir/annotations.rs +259 -0
  40. data/ext/cargo-vendor/bindgen-0.72.1/ir/comment.rs +100 -0
  41. data/ext/cargo-vendor/bindgen-0.72.1/ir/comp.rs +1921 -0
  42. data/ext/cargo-vendor/bindgen-0.72.1/ir/context.rs +3107 -0
  43. data/ext/cargo-vendor/bindgen-0.72.1/ir/derive.rs +130 -0
  44. data/ext/cargo-vendor/bindgen-0.72.1/ir/dot.rs +85 -0
  45. data/ext/cargo-vendor/bindgen-0.72.1/ir/enum_ty.rs +321 -0
  46. data/ext/cargo-vendor/bindgen-0.72.1/ir/function.rs +838 -0
  47. data/ext/cargo-vendor/bindgen-0.72.1/ir/int.rs +128 -0
  48. data/ext/cargo-vendor/bindgen-0.72.1/ir/item.rs +1994 -0
  49. data/ext/cargo-vendor/bindgen-0.72.1/ir/item_kind.rs +135 -0
  50. data/ext/cargo-vendor/bindgen-0.72.1/ir/layout.rs +126 -0
  51. data/ext/cargo-vendor/bindgen-0.72.1/ir/module.rs +96 -0
  52. data/ext/cargo-vendor/bindgen-0.72.1/ir/objc.rs +343 -0
  53. data/ext/cargo-vendor/bindgen-0.72.1/ir/template.rs +335 -0
  54. data/ext/cargo-vendor/bindgen-0.72.1/ir/traversal.rs +478 -0
  55. data/ext/cargo-vendor/bindgen-0.72.1/ir/ty.rs +1256 -0
  56. data/ext/cargo-vendor/bindgen-0.72.1/ir/var.rs +523 -0
  57. data/ext/cargo-vendor/bindgen-0.72.1/lib.rs +1422 -0
  58. data/ext/cargo-vendor/bindgen-0.72.1/log_stubs.rs +38 -0
  59. data/ext/cargo-vendor/bindgen-0.72.1/options/as_args.rs +52 -0
  60. data/ext/cargo-vendor/bindgen-0.72.1/options/cli.rs +1151 -0
  61. data/ext/cargo-vendor/bindgen-0.72.1/options/mod.rs +2286 -0
  62. data/ext/cargo-vendor/bindgen-0.72.1/regex_set.rs +199 -0
  63. data/ext/cargo-vendor/bindgen-0.72.1/time.rs +52 -0
  64. data/ext/cargo-vendor/codeowners-0.5.0/.cargo-checksum.json +1 -0
  65. data/ext/cargo-vendor/codeowners-0.5.0/.github/workflows/audit.yml +31 -0
  66. data/ext/cargo-vendor/codeowners-0.5.0/.github/workflows/ci.yml +180 -0
  67. data/ext/cargo-vendor/codeowners-0.5.0/.github/workflows/codeql.yml +21 -0
  68. data/ext/cargo-vendor/codeowners-0.5.0/Cargo.lock +1176 -0
  69. data/ext/cargo-vendor/codeowners-0.5.0/Cargo.toml +173 -0
  70. data/ext/cargo-vendor/codeowners-0.5.0/perf/README.md +204 -0
  71. data/ext/cargo-vendor/codeowners-0.5.0/perf/compare.sh +23 -0
  72. data/ext/cargo-vendor/codeowners-0.5.0/perf/run.sh +28 -0
  73. data/ext/cargo-vendor/codeowners-0.5.0/rust-toolchain.toml +4 -0
  74. data/ext/cargo-vendor/codeowners-0.5.0/src/bin/codeowners-perf.rs +719 -0
  75. data/ext/cargo-vendor/codeowners-0.5.0/src/cache/file.rs +179 -0
  76. data/ext/cargo-vendor/codeowners-0.5.0/src/cache/mod.rs +29 -0
  77. data/ext/cargo-vendor/codeowners-0.5.0/src/cache/noop.rs +26 -0
  78. data/ext/cargo-vendor/codeowners-0.5.0/src/cli.rs +138 -0
  79. data/ext/cargo-vendor/codeowners-0.5.0/src/main.rs +43 -0
  80. data/ext/cargo-vendor/codeowners-0.5.0/src/ownership/file_owner_resolver.rs +829 -0
  81. data/ext/cargo-vendor/codeowners-0.5.0/src/ownership/validator.rs +378 -0
  82. data/ext/cargo-vendor/codeowners-0.5.0/src/ownership.rs +243 -0
  83. data/ext/cargo-vendor/codeowners-0.5.0/src/project.rs +232 -0
  84. data/ext/cargo-vendor/codeowners-0.5.0/src/project_builder.rs +430 -0
  85. data/ext/cargo-vendor/codeowners-0.5.0/src/project_file_builder.rs +113 -0
  86. data/ext/cargo-vendor/codeowners-0.5.0/src/runner/api.rs +145 -0
  87. data/ext/cargo-vendor/codeowners-0.5.0/src/runner/types.rs +37 -0
  88. data/ext/cargo-vendor/codeowners-0.5.0/src/runner.rs +493 -0
  89. data/ext/cargo-vendor/codeowners-0.5.0/tests/annotation_in_unowned_team_glob_test.rs +64 -0
  90. data/ext/cargo-vendor/codeowners-0.5.0/tests/common/mod.rs +180 -0
  91. data/ext/cargo-vendor/codeowners-0.5.0/tests/directory_codeowner_github_team_test.rs +22 -0
  92. data/ext/cargo-vendor/codeowners-0.5.0/tests/empty_directory_codeowner_test.rs +26 -0
  93. data/ext/cargo-vendor/codeowners-0.5.0/tests/executable_name_config_test.rs +88 -0
  94. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/annotation_in_unowned_team_glob/.github/CODEOWNERS +18 -0
  95. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/annotation_in_unowned_team_glob/config/code_ownership.yml +4 -0
  96. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/annotation_in_unowned_team_glob/config/teams/alpha.yml +7 -0
  97. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/annotation_in_unowned_team_glob/config/teams/beta.yml +3 -0
  98. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/annotation_in_unowned_team_glob/ruby/app/services/alpha_owned.rb +2 -0
  99. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/annotation_in_unowned_team_glob/ruby/app/services/beta_owned.rb +4 -0
  100. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/custom_codeowners_path/docs/CODEOWNERS +14 -0
  101. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/custom_codeowners_path/expected/CODEOWNERS +14 -0
  102. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/directory-codeowner-github-team/.github/CODEOWNERS +15 -0
  103. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/directory-codeowner-github-team/app/by_handle/.codeowner +1 -0
  104. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/directory-codeowner-github-team/app/by_handle/handled.rb +2 -0
  105. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/directory-codeowner-github-team/app/by_name/named.rb +2 -0
  106. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/empty-directory-codeowner/.github/CODEOWNERS +14 -0
  107. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/empty-directory-codeowner/app/services/.codeowner +1 -0
  108. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/empty-directory-codeowner/app/services/nested/.codeowner +1 -0
  109. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/empty-directory-codeowner/app/services/nested/nested_file.rb +2 -0
  110. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/empty-directory-codeowner/config/code_ownership.yml +10 -0
  111. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/empty-directory-codeowner/config/teams/foo.yml +5 -0
  112. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/invalid-directory-codeowner/.github/CODEOWNERS +14 -0
  113. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/invalid-directory-codeowner/app/services/.codeowner +1 -0
  114. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/invalid-directory-codeowner/app/services/nested/.codeowner +1 -0
  115. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/invalid-directory-codeowner/app/services/nested/nested_file.rb +2 -0
  116. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/invalid-directory-codeowner/config/code_ownership.yml +10 -0
  117. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/invalid-directory-codeowner/config/teams/foo.yml +5 -0
  118. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/multiple-directory-owners/app/services/.codeowner +1 -0
  119. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/multiple-directory-owners/config/code_ownership.yml +10 -0
  120. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/multiple-directory-owners/config/teams/foo.yml +5 -0
  121. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/valid_project/.github/CODEOWNERS +41 -0
  122. data/ext/cargo-vendor/codeowners-0.5.0/tests/fixtures/valid_project_with_overrides/.github/CODEOWNERS +53 -0
  123. data/ext/cargo-vendor/codeowners-0.5.0/tests/global_gitignore_test.rs +50 -0
  124. data/ext/cargo-vendor/codeowners-0.5.0/tests/invalid_directory_codeowner_test.rs +26 -0
  125. data/ext/cargo-vendor/codeowners-0.5.0/tests/invalid_project_test.rs +174 -0
  126. data/ext/cargo-vendor/codeowners-0.5.0/tests/perf_harness_test.rs +245 -0
  127. data/ext/cargo-vendor/codeowners-0.5.0/tests/untracked_new_file_test.rs +63 -0
  128. data/ext/cargo-vendor/codeowners-0.5.0/tests/untracked_source_file_test.rs +40 -0
  129. data/ext/cargo-vendor/codeowners-0.5.0/tests/valid_project_test.rs +348 -0
  130. data/ext/cargo-vendor/error-stack-0.8.0/.cargo-checksum.json +1 -0
  131. data/ext/cargo-vendor/error-stack-0.8.0/.cargo_vcs_info.json +6 -0
  132. data/ext/cargo-vendor/error-stack-0.8.0/.justfile +16 -0
  133. data/ext/cargo-vendor/error-stack-0.8.0/CHANGELOG.md +158 -0
  134. data/ext/cargo-vendor/error-stack-0.8.0/Cargo.lock +733 -0
  135. data/ext/cargo-vendor/error-stack-0.8.0/Cargo.toml +389 -0
  136. data/ext/cargo-vendor/error-stack-0.8.0/Cargo.toml.orig +109 -0
  137. data/ext/cargo-vendor/error-stack-0.8.0/README.md +149 -0
  138. data/ext/cargo-vendor/error-stack-0.8.0/build.rs +28 -0
  139. data/ext/cargo-vendor/error-stack-0.8.0/examples/demo.rs +117 -0
  140. data/ext/cargo-vendor/error-stack-0.8.0/examples/detect.rs +68 -0
  141. data/ext/cargo-vendor/error-stack-0.8.0/examples/exit_code.rs +25 -0
  142. data/ext/cargo-vendor/error-stack-0.8.0/examples/parse_config.rs +51 -0
  143. data/ext/cargo-vendor/error-stack-0.8.0/src/compat/anyhow.rs +34 -0
  144. data/ext/cargo-vendor/error-stack-0.8.0/src/compat/eyre.rs +32 -0
  145. data/ext/cargo-vendor/error-stack-0.8.0/src/compat/mod.rs +34 -0
  146. data/ext/cargo-vendor/error-stack-0.8.0/src/context.rs +52 -0
  147. data/ext/cargo-vendor/error-stack-0.8.0/src/error.rs +40 -0
  148. data/ext/cargo-vendor/error-stack-0.8.0/src/ext/iter.rs +286 -0
  149. data/ext/cargo-vendor/error-stack-0.8.0/src/ext/mod.rs +19 -0
  150. data/ext/cargo-vendor/error-stack-0.8.0/src/ext/stream.rs +212 -0
  151. data/ext/cargo-vendor/error-stack-0.8.0/src/ext/tuple.rs +218 -0
  152. data/ext/cargo-vendor/error-stack-0.8.0/src/fmt/charset.rs +114 -0
  153. data/ext/cargo-vendor/error-stack-0.8.0/src/fmt/color.rs +330 -0
  154. data/ext/cargo-vendor/error-stack-0.8.0/src/fmt/config.rs +67 -0
  155. data/ext/cargo-vendor/error-stack-0.8.0/src/fmt/hook.rs +544 -0
  156. data/ext/cargo-vendor/error-stack-0.8.0/src/fmt/location.rs +33 -0
  157. data/ext/cargo-vendor/error-stack-0.8.0/src/fmt/mod.rs +1187 -0
  158. data/ext/cargo-vendor/error-stack-0.8.0/src/frame/frame_impl.rs +259 -0
  159. data/ext/cargo-vendor/error-stack-0.8.0/src/frame/kind.rs +38 -0
  160. data/ext/cargo-vendor/error-stack-0.8.0/src/frame/mod.rs +120 -0
  161. data/ext/cargo-vendor/error-stack-0.8.0/src/future.rs +301 -0
  162. data/ext/cargo-vendor/error-stack-0.8.0/src/hook/context.rs +363 -0
  163. data/ext/cargo-vendor/error-stack-0.8.0/src/hook/mod.rs +240 -0
  164. data/ext/cargo-vendor/error-stack-0.8.0/src/iter.rs +224 -0
  165. data/ext/cargo-vendor/error-stack-0.8.0/src/lib.rs +557 -0
  166. data/ext/cargo-vendor/error-stack-0.8.0/src/macros.rs +212 -0
  167. data/ext/cargo-vendor/error-stack-0.8.0/src/report.rs +1058 -0
  168. data/ext/cargo-vendor/error-stack-0.8.0/src/result.rs +137 -0
  169. data/ext/cargo-vendor/error-stack-0.8.0/src/serde.rs +169 -0
  170. data/ext/cargo-vendor/error-stack-0.8.0/src/sink.rs +672 -0
  171. data/ext/cargo-vendor/error-stack-0.8.0/tests/common.rs +354 -0
  172. data/ext/cargo-vendor/error-stack-0.8.0/tests/compiletest.rs +22 -0
  173. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__charset_ascii.snap +9 -0
  174. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__charset_utf8.snap +9 -0
  175. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__diagnostics_add.snap +10 -0
  176. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__doc.snap +12 -0
  177. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__emit.snap +16 -0
  178. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__emit_alt.snap +28 -0
  179. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__hookcontext_cast.snap +11 -0
  180. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__hookcontext_decrement.snap +10 -0
  181. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__hookcontext_emit.snap +16 -0
  182. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__hookcontext_increment.snap +10 -0
  183. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__hookcontext_storage.snap +10 -0
  184. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__preference_color.snap +9 -0
  185. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__preference_emphasis.snap +9 -0
  186. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt__preference_none.snap +9 -0
  187. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/fmt_doc_alt.snap +15 -0
  188. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/hook__debug_hook.snap +9 -0
  189. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/hook__debug_hook_provide.snap +10 -0
  190. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/lib__suggestion.snap +13 -0
  191. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/doc/report_debug__doc.snap +14 -0
  192. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__full__complex.snap +49 -0
  193. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__full__hook_location.snap +15 -0
  194. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__full__linear.snap +27 -0
  195. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__full__linear_ext.snap +27 -0
  196. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__full__multiline_context.snap +25 -0
  197. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__full__sources.snap +48 -0
  198. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__full__sources_transparent.snap +50 -0
  199. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__sources_nested.snap +78 -0
  200. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__sources_nested@spantrace-backtrace.snap +128 -0
  201. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__sources_nested_alternate.snap +78 -0
  202. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_debug__sources_nested_alternate@spantrace-backtrace.snap +128 -0
  203. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_serialize__attachment.snap +13 -0
  204. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_serialize__context.snap +19 -0
  205. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_serialize__multiple_sources.snap +30 -0
  206. data/ext/cargo-vendor/error-stack-0.8.0/tests/snapshots/test_serialize__multiple_sources_at_root.snap +20 -0
  207. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_attach.rs +94 -0
  208. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_attach_printable.rs +73 -0
  209. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_backtrace.rs +61 -0
  210. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_change_context.rs +90 -0
  211. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_compatibility.rs +224 -0
  212. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_conversion.rs +134 -0
  213. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_debug.rs +628 -0
  214. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_display.rs +31 -0
  215. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_downcast.rs +101 -0
  216. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_extend.rs +99 -0
  217. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_frame.rs +136 -0
  218. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_iter.rs +132 -0
  219. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_macros.rs +68 -0
  220. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_provision.rs +52 -0
  221. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_serialize.rs +70 -0
  222. data/ext/cargo-vendor/error-stack-0.8.0/tests/test_span_trace.rs +91 -0
  223. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/attach_diagnostics.rs +21 -0
  224. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/attach_diagnostics.stderr +23 -0
  225. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/frames_mut_escape.rs +28 -0
  226. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/frames_mut_escape.stderr +13 -0
  227. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/macro_invalid_args.rs +32 -0
  228. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/macro_invalid_args.stderr +132 -0
  229. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/missing_args.rs +32 -0
  230. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/missing_args.stderr +35 -0
  231. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/must_use.rs +20 -0
  232. data/ext/cargo-vendor/error-stack-0.8.0/tests/ui/must_use.stderr +15 -0
  233. data/ext/cargo-vendor/rb-sys-0.9.130/.cargo-checksum.json +1 -0
  234. data/ext/cargo-vendor/rb-sys-0.9.130/.cargo_vcs_info.json +6 -0
  235. data/ext/cargo-vendor/rb-sys-0.9.130/Cargo.lock +385 -0
  236. data/ext/cargo-vendor/rb-sys-0.9.130/Cargo.toml +71 -0
  237. data/ext/cargo-vendor/rb-sys-0.9.130/Cargo.toml.orig +58 -0
  238. data/ext/cargo-vendor/rb-sys-0.9.130/build/main.rs +292 -0
  239. data/ext/cargo-vendor/rb-sys-0.9.130/build/stable_api_config.rs +179 -0
  240. data/ext/cargo-vendor/rb-sys-0.9.130/build/version.rs +58 -0
  241. data/ext/cargo-vendor/rb-sys-0.9.130/src/bindings.rs +22 -0
  242. data/ext/cargo-vendor/rb-sys-0.9.130/src/macros.rs +701 -0
  243. data/ext/cargo-vendor/rb-sys-0.9.130/src/memory.rs +64 -0
  244. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/compiled.c +338 -0
  245. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/compiled.rs +452 -0
  246. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_2_7.rs +770 -0
  247. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_0.rs +773 -0
  248. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_1.rs +766 -0
  249. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_2.rs +764 -0
  250. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_3.rs +777 -0
  251. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_3_4.rs +788 -0
  252. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api/ruby_4_0.rs +784 -0
  253. data/ext/cargo-vendor/rb-sys-0.9.130/src/stable_api.rs +465 -0
  254. data/ext/cargo-vendor/rb-sys-0.9.130/src/utils.rs +94 -0
  255. data/ext/cargo-vendor/rb-sys-build-0.9.130/.cargo-checksum.json +1 -0
  256. data/ext/cargo-vendor/rb-sys-build-0.9.130/.cargo_vcs_info.json +6 -0
  257. data/ext/cargo-vendor/rb-sys-build-0.9.130/Cargo.lock +286 -0
  258. data/ext/cargo-vendor/rb-sys-build-0.9.130/Cargo.toml +76 -0
  259. data/ext/cargo-vendor/rb-sys-build-0.9.130/Cargo.toml.orig +33 -0
  260. data/ext/cargo-vendor/rb-sys-build-0.9.130/src/bindings/gc_stress.rs +303 -0
  261. data/ext/cargo-vendor/rb-sys-build-0.9.130/src/bindings/stable_api.rs +297 -0
  262. data/ext/cargo-vendor/rb-sys-build-0.9.130/src/bindings.rs +292 -0
  263. data/ext/cargo-vendor/rb-sys-build-0.9.130/src/cc.rs +421 -0
  264. data/ext/cargo-vendor/rb-sys-build-0.9.130/src/rb_config.rs +1060 -0
  265. data/ext/cargo-vendor/rb-sys-build-0.9.130/tests/fixtures/rubyopt_stdout.rb +1 -0
  266. data/ext/cargo-vendor/rb-sys-build-0.9.130/tests/rubyopt.rs +17 -0
  267. data/ext/cargo-vendor/rb-sys-env-0.2.3/.cargo-checksum.json +1 -0
  268. data/ext/cargo-vendor/rb-sys-env-0.2.3/.cargo_vcs_info.json +6 -0
  269. data/ext/cargo-vendor/rb-sys-env-0.2.3/Cargo.lock +7 -0
  270. data/ext/cargo-vendor/rb-sys-env-0.2.3/Cargo.toml +33 -0
  271. data/ext/cargo-vendor/rb-sys-env-0.2.3/Cargo.toml.orig +14 -0
  272. data/ext/cargo-vendor/rb-sys-env-0.2.3/readme.md +117 -0
  273. data/ext/cargo-vendor/rb-sys-env-0.2.3/src/ruby_version.rs +165 -0
  274. data/ext/cargo-vendor/rustc-hash-2.1.3/.cargo-checksum.json +1 -0
  275. data/ext/cargo-vendor/rustc-hash-2.1.3/.cargo_vcs_info.json +6 -0
  276. data/ext/cargo-vendor/rustc-hash-2.1.3/.github/workflows/rust.yml +73 -0
  277. data/ext/cargo-vendor/rustc-hash-2.1.3/CHANGELOG.md +41 -0
  278. data/ext/cargo-vendor/rustc-hash-2.1.3/CODE_OF_CONDUCT.md +3 -0
  279. data/ext/cargo-vendor/rustc-hash-2.1.3/Cargo.lock +90 -0
  280. data/ext/cargo-vendor/rustc-hash-2.1.3/Cargo.toml +50 -0
  281. data/ext/cargo-vendor/rustc-hash-2.1.3/Cargo.toml.orig +20 -0
  282. data/ext/cargo-vendor/rustc-hash-2.1.3/LICENSE-APACHE +176 -0
  283. data/ext/cargo-vendor/rustc-hash-2.1.3/LICENSE-MIT +23 -0
  284. data/ext/cargo-vendor/rustc-hash-2.1.3/README.md +42 -0
  285. data/ext/cargo-vendor/rustc-hash-2.1.3/src/lib.rs +472 -0
  286. data/ext/cargo-vendor/rustc-hash-2.1.3/src/random_state.rs +101 -0
  287. data/ext/cargo-vendor/rustc-hash-2.1.3/src/seeded_state.rs +76 -0
  288. data/ext/cargo-vendor/serde-1.0.229/.cargo-checksum.json +1 -0
  289. data/ext/cargo-vendor/serde-1.0.229/.cargo_vcs_info.json +6 -0
  290. data/ext/cargo-vendor/serde-1.0.229/Cargo.lock +66 -0
  291. data/ext/cargo-vendor/serde-1.0.229/Cargo.toml +84 -0
  292. data/ext/cargo-vendor/serde-1.0.229/Cargo.toml.orig +62 -0
  293. data/ext/cargo-vendor/serde-1.0.229/README.md +114 -0
  294. data/ext/cargo-vendor/serde-1.0.229/build.rs +69 -0
  295. data/ext/cargo-vendor/serde-1.0.229/src/core/de/impls.rs +3173 -0
  296. data/ext/cargo-vendor/serde-1.0.229/src/core/lib.rs +121 -0
  297. data/ext/cargo-vendor/serde-1.0.229/src/lib.rs +285 -0
  298. data/ext/cargo-vendor/serde_core-1.0.229/.cargo-checksum.json +1 -0
  299. data/ext/cargo-vendor/serde_core-1.0.229/.cargo_vcs_info.json +6 -0
  300. data/ext/cargo-vendor/serde_core-1.0.229/Cargo.lock +63 -0
  301. data/ext/cargo-vendor/serde_core-1.0.229/Cargo.toml +87 -0
  302. data/ext/cargo-vendor/serde_core-1.0.229/Cargo.toml.orig +70 -0
  303. data/ext/cargo-vendor/serde_core-1.0.229/build.rs +113 -0
  304. data/ext/cargo-vendor/serde_core-1.0.229/src/de/impls.rs +3173 -0
  305. data/ext/cargo-vendor/serde_core-1.0.229/src/lib.rs +121 -0
  306. data/ext/cargo-vendor/serde_derive-1.0.229/.cargo-checksum.json +1 -0
  307. data/ext/cargo-vendor/serde_derive-1.0.229/.cargo_vcs_info.json +6 -0
  308. data/ext/cargo-vendor/serde_derive-1.0.229/Cargo.lock +88 -0
  309. data/ext/cargo-vendor/serde_derive-1.0.229/Cargo.toml +87 -0
  310. data/ext/cargo-vendor/serde_derive-1.0.229/Cargo.toml.orig +42 -0
  311. data/ext/cargo-vendor/serde_derive-1.0.229/README.md +114 -0
  312. data/ext/cargo-vendor/serde_derive-1.0.229/src/bound.rs +431 -0
  313. data/ext/cargo-vendor/serde_derive-1.0.229/src/de/enum_adjacently.rs +324 -0
  314. data/ext/cargo-vendor/serde_derive-1.0.229/src/de/enum_externally.rs +213 -0
  315. data/ext/cargo-vendor/serde_derive-1.0.229/src/de.rs +976 -0
  316. data/ext/cargo-vendor/serde_derive-1.0.229/src/internals/ast.rs +225 -0
  317. data/ext/cargo-vendor/serde_derive-1.0.229/src/internals/attr.rs +1818 -0
  318. data/ext/cargo-vendor/serde_derive-1.0.229/src/internals/ctxt.rs +67 -0
  319. data/ext/cargo-vendor/serde_derive-1.0.229/src/internals/receiver.rs +293 -0
  320. data/ext/cargo-vendor/serde_derive-1.0.229/src/lib.rs +127 -0
  321. data/ext/cargo-vendor/serde_derive-1.0.229/src/pretend.rs +188 -0
  322. data/ext/cargo-vendor/serde_derive-1.0.229/src/ser.rs +1369 -0
  323. data/ext/cargo-vendor/serde_magnus-0.11.0/.cargo-checksum.json +1 -0
  324. data/ext/cargo-vendor/serde_magnus-0.11.0/.cargo_vcs_info.json +6 -0
  325. data/ext/cargo-vendor/serde_magnus-0.11.0/Cargo.lock +385 -0
  326. data/ext/cargo-vendor/serde_magnus-0.11.0/Cargo.toml +162 -0
  327. data/ext/cargo-vendor/serde_magnus-0.11.0/Cargo.toml.orig +28 -0
  328. data/ext/cargo-vendor/serde_magnus-0.11.0/README.md +121 -0
  329. data/ext/cargo-vendor/serde_magnus-0.11.0/src/de/deserializer.rs +185 -0
  330. data/ext/cargo-vendor/syn-3.0.9/.cargo-checksum.json +1 -0
  331. data/ext/cargo-vendor/syn-3.0.9/.cargo_vcs_info.json +6 -0
  332. data/ext/cargo-vendor/syn-3.0.9/Cargo.lock +1948 -0
  333. data/ext/cargo-vendor/syn-3.0.9/Cargo.toml +268 -0
  334. data/ext/cargo-vendor/syn-3.0.9/Cargo.toml.orig +95 -0
  335. data/ext/cargo-vendor/syn-3.0.9/LICENSE-APACHE +176 -0
  336. data/ext/cargo-vendor/syn-3.0.9/README.md +297 -0
  337. data/ext/cargo-vendor/syn-3.0.9/benches/file.rs +59 -0
  338. data/ext/cargo-vendor/syn-3.0.9/benches/rust.rs +189 -0
  339. data/ext/cargo-vendor/syn-3.0.9/src/attr.rs +841 -0
  340. data/ext/cargo-vendor/syn-3.0.9/src/bigint.rs +68 -0
  341. data/ext/cargo-vendor/syn-3.0.9/src/buffer.rs +462 -0
  342. data/ext/cargo-vendor/syn-3.0.9/src/classify.rs +311 -0
  343. data/ext/cargo-vendor/syn-3.0.9/src/custom_keyword.rs +260 -0
  344. data/ext/cargo-vendor/syn-3.0.9/src/custom_punctuation.rs +305 -0
  345. data/ext/cargo-vendor/syn-3.0.9/src/data.rs +489 -0
  346. data/ext/cargo-vendor/syn-3.0.9/src/derive.rs +260 -0
  347. data/ext/cargo-vendor/syn-3.0.9/src/discouraged.rs +233 -0
  348. data/ext/cargo-vendor/syn-3.0.9/src/drops.rs +58 -0
  349. data/ext/cargo-vendor/syn-3.0.9/src/error.rs +552 -0
  350. data/ext/cargo-vendor/syn-3.0.9/src/export.rs +73 -0
  351. data/ext/cargo-vendor/syn-3.0.9/src/expr.rs +4249 -0
  352. data/ext/cargo-vendor/syn-3.0.9/src/ext.rs +180 -0
  353. data/ext/cargo-vendor/syn-3.0.9/src/file.rs +136 -0
  354. data/ext/cargo-vendor/syn-3.0.9/src/fixup.rs +773 -0
  355. data/ext/cargo-vendor/syn-3.0.9/src/gen/clone.rs +2394 -0
  356. data/ext/cargo-vendor/syn-3.0.9/src/gen/debug.rs +3399 -0
  357. data/ext/cargo-vendor/syn-3.0.9/src/gen/eq.rs +2459 -0
  358. data/ext/cargo-vendor/syn-3.0.9/src/gen/fold.rs +3934 -0
  359. data/ext/cargo-vendor/syn-3.0.9/src/gen/hash.rs +3040 -0
  360. data/ext/cargo-vendor/syn-3.0.9/src/gen/token.css +744 -0
  361. data/ext/cargo-vendor/syn-3.0.9/src/gen/visit.rs +4037 -0
  362. data/ext/cargo-vendor/syn-3.0.9/src/gen/visit_mut.rs +3824 -0
  363. data/ext/cargo-vendor/syn-3.0.9/src/generics.rs +1490 -0
  364. data/ext/cargo-vendor/syn-3.0.9/src/group.rs +294 -0
  365. data/ext/cargo-vendor/syn-3.0.9/src/ident.rs +109 -0
  366. data/ext/cargo-vendor/syn-3.0.9/src/item.rs +3923 -0
  367. data/ext/cargo-vendor/syn-3.0.9/src/lib.rs +1132 -0
  368. data/ext/cargo-vendor/syn-3.0.9/src/lifetime.rs +193 -0
  369. data/ext/cargo-vendor/syn-3.0.9/src/lit.rs +1881 -0
  370. data/ext/cargo-vendor/syn-3.0.9/src/lookahead.rs +350 -0
  371. data/ext/cargo-vendor/syn-3.0.9/src/mac.rs +225 -0
  372. data/ext/cargo-vendor/syn-3.0.9/src/macros.rs +151 -0
  373. data/ext/cargo-vendor/syn-3.0.9/src/meta.rs +427 -0
  374. data/ext/cargo-vendor/syn-3.0.9/src/op.rs +219 -0
  375. data/ext/cargo-vendor/syn-3.0.9/src/parse.rs +1420 -0
  376. data/ext/cargo-vendor/syn-3.0.9/src/parse_macro_input.rs +128 -0
  377. data/ext/cargo-vendor/syn-3.0.9/src/parse_quote.rs +261 -0
  378. data/ext/cargo-vendor/syn-3.0.9/src/pat.rs +994 -0
  379. data/ext/cargo-vendor/syn-3.0.9/src/path.rs +972 -0
  380. data/ext/cargo-vendor/syn-3.0.9/src/precedence.rs +210 -0
  381. data/ext/cargo-vendor/syn-3.0.9/src/print.rs +16 -0
  382. data/ext/cargo-vendor/syn-3.0.9/src/punctuated.rs +1200 -0
  383. data/ext/cargo-vendor/syn-3.0.9/src/restriction.rs +160 -0
  384. data/ext/cargo-vendor/syn-3.0.9/src/scan_expr.rs +270 -0
  385. data/ext/cargo-vendor/syn-3.0.9/src/sealed.rs +4 -0
  386. data/ext/cargo-vendor/syn-3.0.9/src/span.rs +63 -0
  387. data/ext/cargo-vendor/syn-3.0.9/src/spanned.rs +118 -0
  388. data/ext/cargo-vendor/syn-3.0.9/src/stmt.rs +536 -0
  389. data/ext/cargo-vendor/syn-3.0.9/src/thread.rs +60 -0
  390. data/ext/cargo-vendor/syn-3.0.9/src/token.rs +1103 -0
  391. data/ext/cargo-vendor/syn-3.0.9/src/tt.rs +97 -0
  392. data/ext/cargo-vendor/syn-3.0.9/src/ty.rs +1347 -0
  393. data/ext/cargo-vendor/syn-3.0.9/src/verbatim.rs +32 -0
  394. data/ext/cargo-vendor/syn-3.0.9/src/whitespace.rs +65 -0
  395. data/ext/cargo-vendor/syn-3.0.9/tests/common/eq.rs +939 -0
  396. data/ext/cargo-vendor/syn-3.0.9/tests/common/mod.rs +6 -0
  397. data/ext/cargo-vendor/syn-3.0.9/tests/common/parse.rs +51 -0
  398. data/ext/cargo-vendor/syn-3.0.9/tests/common/visit.rs +119 -0
  399. data/ext/cargo-vendor/syn-3.0.9/tests/debug/gen.rs +5394 -0
  400. data/ext/cargo-vendor/syn-3.0.9/tests/debug/mod.rs +147 -0
  401. data/ext/cargo-vendor/syn-3.0.9/tests/macros/mod.rs +7 -0
  402. data/ext/cargo-vendor/syn-3.0.9/tests/regression/issue1108.rs +5 -0
  403. data/ext/cargo-vendor/syn-3.0.9/tests/regression/issue1235.rs +32 -0
  404. data/ext/cargo-vendor/syn-3.0.9/tests/regression.rs +5 -0
  405. data/ext/cargo-vendor/syn-3.0.9/tests/repo/mod.rs +789 -0
  406. data/ext/cargo-vendor/syn-3.0.9/tests/repo/progress.rs +37 -0
  407. data/ext/cargo-vendor/syn-3.0.9/tests/snapshot/mod.rs +68 -0
  408. data/ext/cargo-vendor/syn-3.0.9/tests/test_attribute.rs +231 -0
  409. data/ext/cargo-vendor/syn-3.0.9/tests/test_derive_input.rs +801 -0
  410. data/ext/cargo-vendor/syn-3.0.9/tests/test_expr.rs +1721 -0
  411. data/ext/cargo-vendor/syn-3.0.9/tests/test_generics.rs +363 -0
  412. data/ext/cargo-vendor/syn-3.0.9/tests/test_grouping.rs +59 -0
  413. data/ext/cargo-vendor/syn-3.0.9/tests/test_ident.rs +87 -0
  414. data/ext/cargo-vendor/syn-3.0.9/tests/test_item.rs +374 -0
  415. data/ext/cargo-vendor/syn-3.0.9/tests/test_lit.rs +335 -0
  416. data/ext/cargo-vendor/syn-3.0.9/tests/test_meta.rs +180 -0
  417. data/ext/cargo-vendor/syn-3.0.9/tests/test_parse_buffer.rs +104 -0
  418. data/ext/cargo-vendor/syn-3.0.9/tests/test_parse_quote.rs +175 -0
  419. data/ext/cargo-vendor/syn-3.0.9/tests/test_parse_stream.rs +187 -0
  420. data/ext/cargo-vendor/syn-3.0.9/tests/test_pat.rs +158 -0
  421. data/ext/cargo-vendor/syn-3.0.9/tests/test_path.rs +117 -0
  422. data/ext/cargo-vendor/syn-3.0.9/tests/test_precedence.rs +560 -0
  423. data/ext/cargo-vendor/syn-3.0.9/tests/test_punctuated.rs +92 -0
  424. data/ext/cargo-vendor/syn-3.0.9/tests/test_receiver.rs +275 -0
  425. data/ext/cargo-vendor/syn-3.0.9/tests/test_round_trip.rs +226 -0
  426. data/ext/cargo-vendor/syn-3.0.9/tests/test_shebang.rs +77 -0
  427. data/ext/cargo-vendor/syn-3.0.9/tests/test_size.rs +54 -0
  428. data/ext/cargo-vendor/syn-3.0.9/tests/test_stmt.rs +378 -0
  429. data/ext/cargo-vendor/syn-3.0.9/tests/test_token_trees.rs +38 -0
  430. data/ext/cargo-vendor/syn-3.0.9/tests/test_ty.rs +479 -0
  431. data/ext/cargo-vendor/syn-3.0.9/tests/test_unparenthesize.rs +71 -0
  432. data/ext/cargo-vendor/syn-3.0.9/tests/test_visibility.rs +193 -0
  433. data/ext/cargo-vendor/syn-3.0.9/tests/zzz_stable.rs +33 -0
  434. data/ext/code_ownership/Cargo.toml +2 -2
  435. data/ext/code_ownership/src/lib.rs +15 -3
  436. data/lib/code_ownership/version.rb +1 -1
  437. data/lib/code_ownership.rb +4 -1
  438. metadata +739 -723
  439. data/ext/cargo-vendor/ahash-0.7.8/.cargo-checksum.json +0 -1
  440. data/ext/cargo-vendor/ahash-0.7.8/.cargo_vcs_info.json +0 -6
  441. data/ext/cargo-vendor/ahash-0.7.8/.github/workflows/rust.yml +0 -151
  442. data/ext/cargo-vendor/ahash-0.7.8/Cargo.toml +0 -149
  443. data/ext/cargo-vendor/ahash-0.7.8/Cargo.toml.orig +0 -96
  444. data/ext/cargo-vendor/ahash-0.7.8/FAQ.md +0 -118
  445. data/ext/cargo-vendor/ahash-0.7.8/LICENSE-APACHE +0 -201
  446. data/ext/cargo-vendor/ahash-0.7.8/LICENSE-MIT +0 -25
  447. data/ext/cargo-vendor/ahash-0.7.8/README.md +0 -110
  448. data/ext/cargo-vendor/ahash-0.7.8/build.rs +0 -47
  449. data/ext/cargo-vendor/ahash-0.7.8/rustfmt.toml +0 -1
  450. data/ext/cargo-vendor/ahash-0.7.8/src/aes_hash.rs +0 -440
  451. data/ext/cargo-vendor/ahash-0.7.8/src/convert.rs +0 -167
  452. data/ext/cargo-vendor/ahash-0.7.8/src/fallback_hash.rs +0 -392
  453. data/ext/cargo-vendor/ahash-0.7.8/src/hash_map.rs +0 -371
  454. data/ext/cargo-vendor/ahash-0.7.8/src/hash_quality_test.rs +0 -517
  455. data/ext/cargo-vendor/ahash-0.7.8/src/hash_set.rs +0 -313
  456. data/ext/cargo-vendor/ahash-0.7.8/src/lib.rs +0 -263
  457. data/ext/cargo-vendor/ahash-0.7.8/src/operations.rs +0 -330
  458. data/ext/cargo-vendor/ahash-0.7.8/src/random_state.rs +0 -363
  459. data/ext/cargo-vendor/ahash-0.7.8/src/specialize.rs +0 -239
  460. data/ext/cargo-vendor/ahash-0.7.8/tests/bench.rs +0 -154
  461. data/ext/cargo-vendor/ahash-0.7.8/tests/map_tests.rs +0 -203
  462. data/ext/cargo-vendor/ahash-0.7.8/tests/nopanic.rs +0 -72
  463. data/ext/cargo-vendor/bindgen-0.69.5/.cargo-checksum.json +0 -1
  464. data/ext/cargo-vendor/bindgen-0.69.5/.cargo_vcs_info.json +0 -6
  465. data/ext/cargo-vendor/bindgen-0.69.5/Cargo.toml +0 -155
  466. data/ext/cargo-vendor/bindgen-0.69.5/Cargo.toml.orig +0 -74
  467. data/ext/cargo-vendor/bindgen-0.69.5/README.md +0 -89
  468. data/ext/cargo-vendor/bindgen-0.69.5/build.rs +0 -29
  469. data/ext/cargo-vendor/bindgen-0.69.5/callbacks.rs +0 -213
  470. data/ext/cargo-vendor/bindgen-0.69.5/clang.rs +0 -2347
  471. data/ext/cargo-vendor/bindgen-0.69.5/codegen/bitfield_unit.rs +0 -102
  472. data/ext/cargo-vendor/bindgen-0.69.5/codegen/bitfield_unit_tests.rs +0 -260
  473. data/ext/cargo-vendor/bindgen-0.69.5/codegen/dyngen.rs +0 -201
  474. data/ext/cargo-vendor/bindgen-0.69.5/codegen/error.rs +0 -53
  475. data/ext/cargo-vendor/bindgen-0.69.5/codegen/helpers.rs +0 -355
  476. data/ext/cargo-vendor/bindgen-0.69.5/codegen/impl_debug.rs +0 -245
  477. data/ext/cargo-vendor/bindgen-0.69.5/codegen/impl_partialeq.rs +0 -142
  478. data/ext/cargo-vendor/bindgen-0.69.5/codegen/mod.rs +0 -5473
  479. data/ext/cargo-vendor/bindgen-0.69.5/codegen/postprocessing/merge_extern_blocks.rs +0 -72
  480. data/ext/cargo-vendor/bindgen-0.69.5/codegen/postprocessing/sort_semantically.rs +0 -46
  481. data/ext/cargo-vendor/bindgen-0.69.5/codegen/serialize.rs +0 -444
  482. data/ext/cargo-vendor/bindgen-0.69.5/codegen/struct_layout.rs +0 -451
  483. data/ext/cargo-vendor/bindgen-0.69.5/deps.rs +0 -61
  484. data/ext/cargo-vendor/bindgen-0.69.5/diagnostics.rs +0 -189
  485. data/ext/cargo-vendor/bindgen-0.69.5/extra_assertions.rs +0 -17
  486. data/ext/cargo-vendor/bindgen-0.69.5/features.rs +0 -296
  487. data/ext/cargo-vendor/bindgen-0.69.5/ir/analysis/derive.rs +0 -732
  488. data/ext/cargo-vendor/bindgen-0.69.5/ir/analysis/has_destructor.rs +0 -176
  489. data/ext/cargo-vendor/bindgen-0.69.5/ir/analysis/has_float.rs +0 -252
  490. data/ext/cargo-vendor/bindgen-0.69.5/ir/analysis/has_type_param_in_array.rs +0 -252
  491. data/ext/cargo-vendor/bindgen-0.69.5/ir/analysis/has_vtable.rs +0 -240
  492. data/ext/cargo-vendor/bindgen-0.69.5/ir/analysis/mod.rs +0 -400
  493. data/ext/cargo-vendor/bindgen-0.69.5/ir/analysis/sizedness.rs +0 -361
  494. data/ext/cargo-vendor/bindgen-0.69.5/ir/analysis/template_params.rs +0 -607
  495. data/ext/cargo-vendor/bindgen-0.69.5/ir/annotations.rs +0 -256
  496. data/ext/cargo-vendor/bindgen-0.69.5/ir/comment.rs +0 -100
  497. data/ext/cargo-vendor/bindgen-0.69.5/ir/comp.rs +0 -1896
  498. data/ext/cargo-vendor/bindgen-0.69.5/ir/context.rs +0 -3038
  499. data/ext/cargo-vendor/bindgen-0.69.5/ir/derive.rs +0 -135
  500. data/ext/cargo-vendor/bindgen-0.69.5/ir/dot.rs +0 -86
  501. data/ext/cargo-vendor/bindgen-0.69.5/ir/enum_ty.rs +0 -323
  502. data/ext/cargo-vendor/bindgen-0.69.5/ir/function.rs +0 -839
  503. data/ext/cargo-vendor/bindgen-0.69.5/ir/int.rs +0 -127
  504. data/ext/cargo-vendor/bindgen-0.69.5/ir/item.rs +0 -2034
  505. data/ext/cargo-vendor/bindgen-0.69.5/ir/item_kind.rs +0 -135
  506. data/ext/cargo-vendor/bindgen-0.69.5/ir/layout.rs +0 -138
  507. data/ext/cargo-vendor/bindgen-0.69.5/ir/module.rs +0 -96
  508. data/ext/cargo-vendor/bindgen-0.69.5/ir/objc.rs +0 -354
  509. data/ext/cargo-vendor/bindgen-0.69.5/ir/template.rs +0 -342
  510. data/ext/cargo-vendor/bindgen-0.69.5/ir/traversal.rs +0 -479
  511. data/ext/cargo-vendor/bindgen-0.69.5/ir/ty.rs +0 -1281
  512. data/ext/cargo-vendor/bindgen-0.69.5/ir/var.rs +0 -488
  513. data/ext/cargo-vendor/bindgen-0.69.5/lib.rs +0 -1380
  514. data/ext/cargo-vendor/bindgen-0.69.5/log_stubs.rs +0 -32
  515. data/ext/cargo-vendor/bindgen-0.69.5/options/as_args.rs +0 -52
  516. data/ext/cargo-vendor/bindgen-0.69.5/options/mod.rs +0 -2079
  517. data/ext/cargo-vendor/bindgen-0.69.5/regex_set.rs +0 -204
  518. data/ext/cargo-vendor/bindgen-0.69.5/time.rs +0 -52
  519. data/ext/cargo-vendor/codeowners-0.3.3/.cargo-checksum.json +0 -1
  520. data/ext/cargo-vendor/codeowners-0.3.3/.github/workflows/audit.yml +0 -19
  521. data/ext/cargo-vendor/codeowners-0.3.3/.github/workflows/ci.yml +0 -169
  522. data/ext/cargo-vendor/codeowners-0.3.3/Cargo.lock +0 -1264
  523. data/ext/cargo-vendor/codeowners-0.3.3/Cargo.toml +0 -132
  524. data/ext/cargo-vendor/codeowners-0.3.3/rust-toolchain.toml +0 -4
  525. data/ext/cargo-vendor/codeowners-0.3.3/src/cache/file.rs +0 -179
  526. data/ext/cargo-vendor/codeowners-0.3.3/src/cache/mod.rs +0 -29
  527. data/ext/cargo-vendor/codeowners-0.3.3/src/cache/noop.rs +0 -26
  528. data/ext/cargo-vendor/codeowners-0.3.3/src/cli.rs +0 -138
  529. data/ext/cargo-vendor/codeowners-0.3.3/src/main.rs +0 -43
  530. data/ext/cargo-vendor/codeowners-0.3.3/src/ownership/file_owner_resolver.rs +0 -416
  531. data/ext/cargo-vendor/codeowners-0.3.3/src/ownership/validator.rs +0 -285
  532. data/ext/cargo-vendor/codeowners-0.3.3/src/ownership.rs +0 -224
  533. data/ext/cargo-vendor/codeowners-0.3.3/src/project.rs +0 -232
  534. data/ext/cargo-vendor/codeowners-0.3.3/src/project_builder.rs +0 -404
  535. data/ext/cargo-vendor/codeowners-0.3.3/src/project_file_builder.rs +0 -113
  536. data/ext/cargo-vendor/codeowners-0.3.3/src/runner/api.rs +0 -142
  537. data/ext/cargo-vendor/codeowners-0.3.3/src/runner/types.rs +0 -38
  538. data/ext/cargo-vendor/codeowners-0.3.3/src/runner.rs +0 -483
  539. data/ext/cargo-vendor/codeowners-0.3.3/tests/common/mod.rs +0 -180
  540. data/ext/cargo-vendor/codeowners-0.3.3/tests/executable_name_config_test.rs +0 -88
  541. data/ext/cargo-vendor/codeowners-0.3.3/tests/fixtures/custom_codeowners_path/docs/CODEOWNERS +0 -14
  542. data/ext/cargo-vendor/codeowners-0.3.3/tests/fixtures/custom_codeowners_path/expected/CODEOWNERS +0 -14
  543. data/ext/cargo-vendor/codeowners-0.3.3/tests/fixtures/valid_project/.github/CODEOWNERS +0 -41
  544. data/ext/cargo-vendor/codeowners-0.3.3/tests/fixtures/valid_project_with_overrides/.github/CODEOWNERS +0 -53
  545. data/ext/cargo-vendor/codeowners-0.3.3/tests/invalid_project_test.rs +0 -174
  546. data/ext/cargo-vendor/codeowners-0.3.3/tests/valid_project_test.rs +0 -348
  547. data/ext/cargo-vendor/error-stack-0.5.0/.cargo-checksum.json +0 -1
  548. data/ext/cargo-vendor/error-stack-0.5.0/.cargo_vcs_info.json +0 -6
  549. data/ext/cargo-vendor/error-stack-0.5.0/.justfile +0 -58
  550. data/ext/cargo-vendor/error-stack-0.5.0/CHANGELOG.md +0 -109
  551. data/ext/cargo-vendor/error-stack-0.5.0/Cargo.lock +0 -790
  552. data/ext/cargo-vendor/error-stack-0.5.0/Cargo.toml +0 -334
  553. data/ext/cargo-vendor/error-stack-0.5.0/Cargo.toml.orig +0 -87
  554. data/ext/cargo-vendor/error-stack-0.5.0/README.md +0 -151
  555. data/ext/cargo-vendor/error-stack-0.5.0/build.rs +0 -29
  556. data/ext/cargo-vendor/error-stack-0.5.0/examples/demo.rs +0 -115
  557. data/ext/cargo-vendor/error-stack-0.5.0/examples/detect.rs +0 -68
  558. data/ext/cargo-vendor/error-stack-0.5.0/examples/exit_code.rs +0 -24
  559. data/ext/cargo-vendor/error-stack-0.5.0/examples/parse_config.rs +0 -51
  560. data/ext/cargo-vendor/error-stack-0.5.0/rust-toolchain.toml +0 -4
  561. data/ext/cargo-vendor/error-stack-0.5.0/src/compat/anyhow.rs +0 -34
  562. data/ext/cargo-vendor/error-stack-0.5.0/src/compat/eyre.rs +0 -31
  563. data/ext/cargo-vendor/error-stack-0.5.0/src/compat/mod.rs +0 -36
  564. data/ext/cargo-vendor/error-stack-0.5.0/src/context.rs +0 -132
  565. data/ext/cargo-vendor/error-stack-0.5.0/src/error.rs +0 -47
  566. data/ext/cargo-vendor/error-stack-0.5.0/src/fmt/charset.rs +0 -114
  567. data/ext/cargo-vendor/error-stack-0.5.0/src/fmt/color.rs +0 -330
  568. data/ext/cargo-vendor/error-stack-0.5.0/src/fmt/config.rs +0 -67
  569. data/ext/cargo-vendor/error-stack-0.5.0/src/fmt/hook.rs +0 -545
  570. data/ext/cargo-vendor/error-stack-0.5.0/src/fmt/location.rs +0 -33
  571. data/ext/cargo-vendor/error-stack-0.5.0/src/fmt/mod.rs +0 -1177
  572. data/ext/cargo-vendor/error-stack-0.5.0/src/frame/frame_impl.rs +0 -262
  573. data/ext/cargo-vendor/error-stack-0.5.0/src/frame/kind.rs +0 -37
  574. data/ext/cargo-vendor/error-stack-0.5.0/src/frame/mod.rs +0 -122
  575. data/ext/cargo-vendor/error-stack-0.5.0/src/future.rs +0 -307
  576. data/ext/cargo-vendor/error-stack-0.5.0/src/hook/context.rs +0 -365
  577. data/ext/cargo-vendor/error-stack-0.5.0/src/hook/mod.rs +0 -239
  578. data/ext/cargo-vendor/error-stack-0.5.0/src/iter.rs +0 -269
  579. data/ext/cargo-vendor/error-stack-0.5.0/src/lib.rs +0 -545
  580. data/ext/cargo-vendor/error-stack-0.5.0/src/macros.rs +0 -253
  581. data/ext/cargo-vendor/error-stack-0.5.0/src/report.rs +0 -740
  582. data/ext/cargo-vendor/error-stack-0.5.0/src/result.rs +0 -267
  583. data/ext/cargo-vendor/error-stack-0.5.0/src/serde.rs +0 -154
  584. data/ext/cargo-vendor/error-stack-0.5.0/tests/common.rs +0 -342
  585. data/ext/cargo-vendor/error-stack-0.5.0/tests/compiletest.rs +0 -7
  586. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__charset_ascii.snap +0 -9
  587. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__charset_utf8.snap +0 -9
  588. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__diagnostics_add.snap +0 -10
  589. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__doc.snap +0 -12
  590. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__emit.snap +0 -16
  591. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__emit_alt.snap +0 -28
  592. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__hookcontext_cast.snap +0 -11
  593. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__hookcontext_decrement.snap +0 -10
  594. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__hookcontext_emit.snap +0 -16
  595. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__hookcontext_increment.snap +0 -10
  596. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__hookcontext_storage.snap +0 -10
  597. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__preference_color.snap +0 -9
  598. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__preference_emphasis.snap +0 -9
  599. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt__preference_none.snap +0 -9
  600. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/fmt_doc_alt.snap +0 -15
  601. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/hook__debug_hook.snap +0 -9
  602. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/hook__debug_hook_provide.snap +0 -10
  603. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/lib__suggestion.snap +0 -13
  604. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/doc/report_debug__doc.snap +0 -14
  605. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__full__complex.snap +0 -49
  606. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__full__hook_location.snap +0 -15
  607. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__full__linear.snap +0 -27
  608. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__full__linear_ext.snap +0 -27
  609. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__full__multiline_context.snap +0 -25
  610. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__full__sources.snap +0 -48
  611. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__full__sources_transparent.snap +0 -50
  612. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__sources_nested.snap +0 -78
  613. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__sources_nested@backtrace.snap +0 -104
  614. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__sources_nested@spantrace-backtrace.snap +0 -128
  615. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__sources_nested@spantrace.snap +0 -104
  616. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__sources_nested_alternate.snap +0 -78
  617. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__sources_nested_alternate@backtrace.snap +0 -104
  618. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__sources_nested_alternate@spantrace-backtrace.snap +0 -128
  619. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_debug__sources_nested_alternate@spantrace.snap +0 -104
  620. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_serialize__attachment.snap +0 -13
  621. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_serialize__context.snap +0 -19
  622. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_serialize__multiple_sources.snap +0 -30
  623. data/ext/cargo-vendor/error-stack-0.5.0/tests/snapshots/test_serialize__multiple_sources_at_root.snap +0 -20
  624. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_attach.rs +0 -68
  625. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_attach_printable.rs +0 -74
  626. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_backtrace.rs +0 -62
  627. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_change_context.rs +0 -68
  628. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_compatibility.rs +0 -233
  629. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_conversion.rs +0 -112
  630. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_debug.rs +0 -628
  631. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_display.rs +0 -32
  632. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_downcast.rs +0 -41
  633. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_extend.rs +0 -78
  634. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_frame.rs +0 -126
  635. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_iter.rs +0 -99
  636. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_macros.rs +0 -94
  637. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_provision.rs +0 -51
  638. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_serialize.rs +0 -70
  639. data/ext/cargo-vendor/error-stack-0.5.0/tests/test_span_trace.rs +0 -92
  640. data/ext/cargo-vendor/error-stack-0.5.0/tests/ui/macro_invalid_args.rs +0 -60
  641. data/ext/cargo-vendor/error-stack-0.5.0/tests/ui/macro_invalid_args.stderr +0 -101
  642. data/ext/cargo-vendor/error-stack-0.5.0/tests/ui/must_use.rs +0 -20
  643. data/ext/cargo-vendor/error-stack-0.5.0/tests/ui/must_use.stderr +0 -15
  644. data/ext/cargo-vendor/getrandom-0.2.16/.cargo-checksum.json +0 -1
  645. data/ext/cargo-vendor/getrandom-0.2.16/.cargo_vcs_info.json +0 -6
  646. data/ext/cargo-vendor/getrandom-0.2.16/CHANGELOG.md +0 -498
  647. data/ext/cargo-vendor/getrandom-0.2.16/Cargo.lock +0 -354
  648. data/ext/cargo-vendor/getrandom-0.2.16/Cargo.toml +0 -121
  649. data/ext/cargo-vendor/getrandom-0.2.16/Cargo.toml.orig +0 -67
  650. data/ext/cargo-vendor/getrandom-0.2.16/LICENSE-APACHE +0 -201
  651. data/ext/cargo-vendor/getrandom-0.2.16/LICENSE-MIT +0 -26
  652. data/ext/cargo-vendor/getrandom-0.2.16/README.md +0 -81
  653. data/ext/cargo-vendor/getrandom-0.2.16/SECURITY.md +0 -13
  654. data/ext/cargo-vendor/getrandom-0.2.16/benches/buffer.rs +0 -71
  655. data/ext/cargo-vendor/getrandom-0.2.16/src/apple-other.rs +0 -24
  656. data/ext/cargo-vendor/getrandom-0.2.16/src/custom.rs +0 -105
  657. data/ext/cargo-vendor/getrandom-0.2.16/src/error.rs +0 -189
  658. data/ext/cargo-vendor/getrandom-0.2.16/src/error_impls.rs +0 -15
  659. data/ext/cargo-vendor/getrandom-0.2.16/src/espidf.rs +0 -18
  660. data/ext/cargo-vendor/getrandom-0.2.16/src/fuchsia.rs +0 -13
  661. data/ext/cargo-vendor/getrandom-0.2.16/src/getentropy.rs +0 -21
  662. data/ext/cargo-vendor/getrandom-0.2.16/src/getrandom.rs +0 -25
  663. data/ext/cargo-vendor/getrandom-0.2.16/src/hermit.rs +0 -29
  664. data/ext/cargo-vendor/getrandom-0.2.16/src/js.rs +0 -155
  665. data/ext/cargo-vendor/getrandom-0.2.16/src/lazy.rs +0 -56
  666. data/ext/cargo-vendor/getrandom-0.2.16/src/lib.rs +0 -407
  667. data/ext/cargo-vendor/getrandom-0.2.16/src/linux_android.rs +0 -7
  668. data/ext/cargo-vendor/getrandom-0.2.16/src/linux_android_with_fallback.rs +0 -33
  669. data/ext/cargo-vendor/getrandom-0.2.16/src/netbsd.rs +0 -46
  670. data/ext/cargo-vendor/getrandom-0.2.16/src/rdrand.rs +0 -121
  671. data/ext/cargo-vendor/getrandom-0.2.16/src/solaris.rs +0 -34
  672. data/ext/cargo-vendor/getrandom-0.2.16/src/solid.rs +0 -18
  673. data/ext/cargo-vendor/getrandom-0.2.16/src/use_file.rs +0 -120
  674. data/ext/cargo-vendor/getrandom-0.2.16/src/util.rs +0 -35
  675. data/ext/cargo-vendor/getrandom-0.2.16/src/util_libc.rs +0 -162
  676. data/ext/cargo-vendor/getrandom-0.2.16/src/vxworks.rs +0 -29
  677. data/ext/cargo-vendor/getrandom-0.2.16/src/wasi.rs +0 -17
  678. data/ext/cargo-vendor/getrandom-0.2.16/src/windows.rs +0 -59
  679. data/ext/cargo-vendor/getrandom-0.2.16/tests/common/mod.rs +0 -100
  680. data/ext/cargo-vendor/getrandom-0.2.16/tests/custom.rs +0 -54
  681. data/ext/cargo-vendor/getrandom-0.2.16/tests/normal.rs +0 -11
  682. data/ext/cargo-vendor/getrandom-0.2.16/tests/rdrand.rs +0 -22
  683. data/ext/cargo-vendor/hashbrown-0.12.3/.cargo-checksum.json +0 -1
  684. data/ext/cargo-vendor/hashbrown-0.12.3/.cargo_vcs_info.json +0 -6
  685. data/ext/cargo-vendor/hashbrown-0.12.3/CHANGELOG.md +0 -402
  686. data/ext/cargo-vendor/hashbrown-0.12.3/Cargo.toml +0 -113
  687. data/ext/cargo-vendor/hashbrown-0.12.3/Cargo.toml.orig +0 -60
  688. data/ext/cargo-vendor/hashbrown-0.12.3/LICENSE-APACHE +0 -201
  689. data/ext/cargo-vendor/hashbrown-0.12.3/LICENSE-MIT +0 -25
  690. data/ext/cargo-vendor/hashbrown-0.12.3/README.md +0 -126
  691. data/ext/cargo-vendor/hashbrown-0.12.3/benches/bench.rs +0 -331
  692. data/ext/cargo-vendor/hashbrown-0.12.3/benches/insert_unique_unchecked.rs +0 -32
  693. data/ext/cargo-vendor/hashbrown-0.12.3/clippy.toml +0 -1
  694. data/ext/cargo-vendor/hashbrown-0.12.3/src/external_trait_impls/mod.rs +0 -4
  695. data/ext/cargo-vendor/hashbrown-0.12.3/src/external_trait_impls/rayon/helpers.rs +0 -27
  696. data/ext/cargo-vendor/hashbrown-0.12.3/src/external_trait_impls/rayon/map.rs +0 -734
  697. data/ext/cargo-vendor/hashbrown-0.12.3/src/external_trait_impls/rayon/mod.rs +0 -4
  698. data/ext/cargo-vendor/hashbrown-0.12.3/src/external_trait_impls/rayon/raw.rs +0 -231
  699. data/ext/cargo-vendor/hashbrown-0.12.3/src/external_trait_impls/rayon/set.rs +0 -659
  700. data/ext/cargo-vendor/hashbrown-0.12.3/src/external_trait_impls/serde.rs +0 -201
  701. data/ext/cargo-vendor/hashbrown-0.12.3/src/lib.rs +0 -150
  702. data/ext/cargo-vendor/hashbrown-0.12.3/src/macros.rs +0 -70
  703. data/ext/cargo-vendor/hashbrown-0.12.3/src/map.rs +0 -8408
  704. data/ext/cargo-vendor/hashbrown-0.12.3/src/raw/alloc.rs +0 -73
  705. data/ext/cargo-vendor/hashbrown-0.12.3/src/raw/bitmask.rs +0 -122
  706. data/ext/cargo-vendor/hashbrown-0.12.3/src/raw/generic.rs +0 -154
  707. data/ext/cargo-vendor/hashbrown-0.12.3/src/raw/mod.rs +0 -2460
  708. data/ext/cargo-vendor/hashbrown-0.12.3/src/raw/sse2.rs +0 -146
  709. data/ext/cargo-vendor/hashbrown-0.12.3/src/rustc_entry.rs +0 -630
  710. data/ext/cargo-vendor/hashbrown-0.12.3/src/scopeguard.rs +0 -74
  711. data/ext/cargo-vendor/hashbrown-0.12.3/src/set.rs +0 -2790
  712. data/ext/cargo-vendor/hashbrown-0.12.3/tests/hasher.rs +0 -65
  713. data/ext/cargo-vendor/hashbrown-0.12.3/tests/rayon.rs +0 -533
  714. data/ext/cargo-vendor/hashbrown-0.12.3/tests/serde.rs +0 -65
  715. data/ext/cargo-vendor/hashbrown-0.12.3/tests/set.rs +0 -34
  716. data/ext/cargo-vendor/lazycell-1.3.0/.cargo-checksum.json +0 -1
  717. data/ext/cargo-vendor/lazycell-1.3.0/.cargo_vcs_info.json +0 -5
  718. data/ext/cargo-vendor/lazycell-1.3.0/CHANGELOG.md +0 -197
  719. data/ext/cargo-vendor/lazycell-1.3.0/Cargo.toml +0 -34
  720. data/ext/cargo-vendor/lazycell-1.3.0/Cargo.toml.orig +0 -27
  721. data/ext/cargo-vendor/lazycell-1.3.0/LICENSE-APACHE +0 -201
  722. data/ext/cargo-vendor/lazycell-1.3.0/LICENSE-MIT +0 -26
  723. data/ext/cargo-vendor/lazycell-1.3.0/README.md +0 -73
  724. data/ext/cargo-vendor/lazycell-1.3.0/src/lib.rs +0 -680
  725. data/ext/cargo-vendor/lazycell-1.3.0/src/serde_impl.rs +0 -86
  726. data/ext/cargo-vendor/lru-0.7.8/.cargo-checksum.json +0 -1
  727. data/ext/cargo-vendor/lru-0.7.8/.cargo_vcs_info.json +0 -6
  728. data/ext/cargo-vendor/lru-0.7.8/.github/workflows/main.yml +0 -54
  729. data/ext/cargo-vendor/lru-0.7.8/CHANGELOG.md +0 -194
  730. data/ext/cargo-vendor/lru-0.7.8/Cargo.toml +0 -42
  731. data/ext/cargo-vendor/lru-0.7.8/Cargo.toml.orig +0 -22
  732. data/ext/cargo-vendor/lru-0.7.8/LICENSE +0 -21
  733. data/ext/cargo-vendor/lru-0.7.8/README.md +0 -62
  734. data/ext/cargo-vendor/lru-0.7.8/src/lib.rs +0 -1872
  735. data/ext/cargo-vendor/rb-sys-0.9.117/.cargo-checksum.json +0 -1
  736. data/ext/cargo-vendor/rb-sys-0.9.117/.cargo_vcs_info.json +0 -6
  737. data/ext/cargo-vendor/rb-sys-0.9.117/Cargo.lock +0 -393
  738. data/ext/cargo-vendor/rb-sys-0.9.117/Cargo.toml +0 -70
  739. data/ext/cargo-vendor/rb-sys-0.9.117/Cargo.toml.orig +0 -57
  740. data/ext/cargo-vendor/rb-sys-0.9.117/build/main.rs +0 -286
  741. data/ext/cargo-vendor/rb-sys-0.9.117/build/stable_api_config.rs +0 -155
  742. data/ext/cargo-vendor/rb-sys-0.9.117/build/version.rs +0 -50
  743. data/ext/cargo-vendor/rb-sys-0.9.117/src/bindings.rs +0 -21
  744. data/ext/cargo-vendor/rb-sys-0.9.117/src/macros.rs +0 -371
  745. data/ext/cargo-vendor/rb-sys-0.9.117/src/memory.rs +0 -53
  746. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/compiled.c +0 -179
  747. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/compiled.rs +0 -257
  748. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_2_6.rs +0 -324
  749. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_2_7.rs +0 -324
  750. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_0.rs +0 -332
  751. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_1.rs +0 -325
  752. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_2.rs +0 -323
  753. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_3.rs +0 -339
  754. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api/ruby_3_4.rs +0 -339
  755. data/ext/cargo-vendor/rb-sys-0.9.117/src/stable_api.rs +0 -261
  756. data/ext/cargo-vendor/rb-sys-0.9.117/src/utils.rs +0 -89
  757. data/ext/cargo-vendor/rb-sys-build-0.9.117/.cargo-checksum.json +0 -1
  758. data/ext/cargo-vendor/rb-sys-build-0.9.117/.cargo_vcs_info.json +0 -6
  759. data/ext/cargo-vendor/rb-sys-build-0.9.117/Cargo.lock +0 -294
  760. data/ext/cargo-vendor/rb-sys-build-0.9.117/Cargo.toml +0 -71
  761. data/ext/cargo-vendor/rb-sys-build-0.9.117/Cargo.toml.orig +0 -32
  762. data/ext/cargo-vendor/rb-sys-build-0.9.117/src/bindings/stable_api.rs +0 -206
  763. data/ext/cargo-vendor/rb-sys-build-0.9.117/src/bindings.rs +0 -286
  764. data/ext/cargo-vendor/rb-sys-build-0.9.117/src/cc.rs +0 -421
  765. data/ext/cargo-vendor/rb-sys-build-0.9.117/src/rb_config.rs +0 -863
  766. data/ext/cargo-vendor/rb-sys-env-0.2.2/.cargo-checksum.json +0 -1
  767. data/ext/cargo-vendor/rb-sys-env-0.2.2/.cargo_vcs_info.json +0 -6
  768. data/ext/cargo-vendor/rb-sys-env-0.2.2/Cargo.toml +0 -33
  769. data/ext/cargo-vendor/rb-sys-env-0.2.2/Cargo.toml.orig +0 -14
  770. data/ext/cargo-vendor/rb-sys-env-0.2.2/readme.md +0 -119
  771. data/ext/cargo-vendor/rb-sys-env-0.2.2/src/ruby_version.rs +0 -163
  772. data/ext/cargo-vendor/rustc-hash-1.1.0/.cargo-checksum.json +0 -1
  773. data/ext/cargo-vendor/rustc-hash-1.1.0/.cargo_vcs_info.json +0 -5
  774. data/ext/cargo-vendor/rustc-hash-1.1.0/CODE_OF_CONDUCT.md +0 -40
  775. data/ext/cargo-vendor/rustc-hash-1.1.0/Cargo.toml +0 -25
  776. data/ext/cargo-vendor/rustc-hash-1.1.0/Cargo.toml.orig +0 -13
  777. data/ext/cargo-vendor/rustc-hash-1.1.0/LICENSE-APACHE +0 -201
  778. data/ext/cargo-vendor/rustc-hash-1.1.0/README.md +0 -38
  779. data/ext/cargo-vendor/rustc-hash-1.1.0/src/lib.rs +0 -148
  780. data/ext/cargo-vendor/serde-1.0.228/.cargo-checksum.json +0 -1
  781. data/ext/cargo-vendor/serde-1.0.228/.cargo_vcs_info.json +0 -6
  782. data/ext/cargo-vendor/serde-1.0.228/Cargo.lock +0 -66
  783. data/ext/cargo-vendor/serde-1.0.228/Cargo.toml +0 -84
  784. data/ext/cargo-vendor/serde-1.0.228/Cargo.toml.orig +0 -62
  785. data/ext/cargo-vendor/serde-1.0.228/README.md +0 -114
  786. data/ext/cargo-vendor/serde-1.0.228/build.rs +0 -69
  787. data/ext/cargo-vendor/serde-1.0.228/src/core/de/impls.rs +0 -3173
  788. data/ext/cargo-vendor/serde-1.0.228/src/core/lib.rs +0 -121
  789. data/ext/cargo-vendor/serde-1.0.228/src/lib.rs +0 -285
  790. data/ext/cargo-vendor/serde_core-1.0.228/.cargo-checksum.json +0 -1
  791. data/ext/cargo-vendor/serde_core-1.0.228/.cargo_vcs_info.json +0 -6
  792. data/ext/cargo-vendor/serde_core-1.0.228/Cargo.lock +0 -63
  793. data/ext/cargo-vendor/serde_core-1.0.228/Cargo.toml +0 -87
  794. data/ext/cargo-vendor/serde_core-1.0.228/Cargo.toml.orig +0 -70
  795. data/ext/cargo-vendor/serde_core-1.0.228/build.rs +0 -113
  796. data/ext/cargo-vendor/serde_core-1.0.228/src/de/impls.rs +0 -3173
  797. data/ext/cargo-vendor/serde_core-1.0.228/src/lib.rs +0 -121
  798. data/ext/cargo-vendor/serde_derive-1.0.228/.cargo-checksum.json +0 -1
  799. data/ext/cargo-vendor/serde_derive-1.0.228/.cargo_vcs_info.json +0 -6
  800. data/ext/cargo-vendor/serde_derive-1.0.228/Cargo.lock +0 -77
  801. data/ext/cargo-vendor/serde_derive-1.0.228/Cargo.toml +0 -87
  802. data/ext/cargo-vendor/serde_derive-1.0.228/Cargo.toml.orig +0 -42
  803. data/ext/cargo-vendor/serde_derive-1.0.228/README.md +0 -114
  804. data/ext/cargo-vendor/serde_derive-1.0.228/src/bound.rs +0 -410
  805. data/ext/cargo-vendor/serde_derive-1.0.228/src/de/enum_adjacently.rs +0 -323
  806. data/ext/cargo-vendor/serde_derive-1.0.228/src/de/enum_externally.rs +0 -212
  807. data/ext/cargo-vendor/serde_derive-1.0.228/src/de.rs +0 -973
  808. data/ext/cargo-vendor/serde_derive-1.0.228/src/internals/ast.rs +0 -218
  809. data/ext/cargo-vendor/serde_derive-1.0.228/src/internals/attr.rs +0 -1831
  810. data/ext/cargo-vendor/serde_derive-1.0.228/src/internals/ctxt.rs +0 -68
  811. data/ext/cargo-vendor/serde_derive-1.0.228/src/internals/receiver.rs +0 -293
  812. data/ext/cargo-vendor/serde_derive-1.0.228/src/lib.rs +0 -127
  813. data/ext/cargo-vendor/serde_derive-1.0.228/src/pretend.rs +0 -188
  814. data/ext/cargo-vendor/serde_derive-1.0.228/src/ser.rs +0 -1369
  815. data/ext/cargo-vendor/serde_magnus-0.10.0/.cargo-checksum.json +0 -1
  816. data/ext/cargo-vendor/serde_magnus-0.10.0/.cargo_vcs_info.json +0 -6
  817. data/ext/cargo-vendor/serde_magnus-0.10.0/Cargo.lock +0 -387
  818. data/ext/cargo-vendor/serde_magnus-0.10.0/Cargo.toml +0 -162
  819. data/ext/cargo-vendor/serde_magnus-0.10.0/Cargo.toml.orig +0 -28
  820. data/ext/cargo-vendor/serde_magnus-0.10.0/README.md +0 -121
  821. data/ext/cargo-vendor/serde_magnus-0.10.0/src/de/deserializer.rs +0 -185
  822. data/ext/cargo-vendor/version_check-0.9.5/.cargo-checksum.json +0 -1
  823. data/ext/cargo-vendor/version_check-0.9.5/.cargo_vcs_info.json +0 -6
  824. data/ext/cargo-vendor/version_check-0.9.5/.github/workflows/ci.yml +0 -42
  825. data/ext/cargo-vendor/version_check-0.9.5/.travis.yml +0 -6
  826. data/ext/cargo-vendor/version_check-0.9.5/Cargo.toml +0 -38
  827. data/ext/cargo-vendor/version_check-0.9.5/Cargo.toml.orig +0 -13
  828. data/ext/cargo-vendor/version_check-0.9.5/LICENSE-APACHE +0 -201
  829. data/ext/cargo-vendor/version_check-0.9.5/LICENSE-MIT +0 -19
  830. data/ext/cargo-vendor/version_check-0.9.5/README.md +0 -80
  831. data/ext/cargo-vendor/version_check-0.9.5/src/channel.rs +0 -195
  832. data/ext/cargo-vendor/version_check-0.9.5/src/date.rs +0 -203
  833. data/ext/cargo-vendor/version_check-0.9.5/src/lib.rs +0 -528
  834. data/ext/cargo-vendor/version_check-0.9.5/src/version.rs +0 -316
  835. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/.cargo-checksum.json +0 -1
  836. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/.cargo_vcs_info.json +0 -6
  837. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/.github/workflows/main.yml +0 -44
  838. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/.gitmodules +0 -3
  839. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/CODE_OF_CONDUCT.md +0 -49
  840. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/CONTRIBUTING.md +0 -8
  841. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/Cargo.lock +0 -23
  842. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/Cargo.toml +0 -59
  843. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/Cargo.toml.orig +0 -29
  844. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/LICENSE-APACHE +0 -201
  845. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/LICENSE-Apache-2.0_WITH_LLVM-exception +0 -220
  846. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/LICENSE-MIT +0 -23
  847. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/ORG_CODE_OF_CONDUCT.md +0 -143
  848. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/README.md +0 -94
  849. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/SECURITY.md +0 -29
  850. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/src/lib.rs +0 -47
  851. data/ext/cargo-vendor/wasi-0.11.1+wasi-snapshot-preview1/src/lib_generated.rs +0 -2366
  852. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/LICENSE +0 -0
  853. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/codegen/postprocessing/mod.rs +0 -0
  854. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/ir/mod.rs +0 -0
  855. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/options/helpers.rs +0 -0
  856. /data/ext/cargo-vendor/{bindgen-0.69.5 → bindgen-0.72.1}/parse.rs +0 -0
  857. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/.github/CODEOWNERS +0 -0
  858. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/.github/workflows/dotslash-config.json +0 -0
  859. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/.rustfmt.toml +0 -0
  860. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/.rusty-hook.toml +0 -0
  861. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/AGENTS.md +0 -0
  862. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/CLAUDE.md +0 -0
  863. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/README.md +0 -0
  864. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/dev/run_benchmarks_for_file.sh +0 -0
  865. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/dev/run_benchmarks_for_gv.sh +0 -0
  866. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/common_test.rs +0 -0
  867. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/config.rs +0 -0
  868. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/crosscheck.rs +0 -0
  869. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/lib.rs +0 -0
  870. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/codeowners_file_parser.rs +0 -0
  871. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/codeowners_query.rs +0 -0
  872. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/file_generator.rs +0 -0
  873. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/file_owner_finder.rs +0 -0
  874. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/mapper/annotated_file_mapper.rs +0 -0
  875. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/mapper/directory_mapper.rs +0 -0
  876. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/mapper/escaper.rs +0 -0
  877. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/mapper/package_mapper.rs +0 -0
  878. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/mapper/team_gem_mapper.rs +0 -0
  879. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/mapper/team_glob_mapper.rs +0 -0
  880. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/mapper/team_yml_mapper.rs +0 -0
  881. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/ownership/mapper.rs +0 -0
  882. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/path_utils.rs +0 -0
  883. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/src/tracked_files.rs +0 -0
  884. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/cache_test.rs +0 -0
  885. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/codeowners_path_test.rs +0 -0
  886. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/crosscheck_owners_test.rs +0 -0
  887. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/custom_codeowners_path/config/code_ownership.yml +0 -0
  888. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/custom_codeowners_path/config/teams/test_team.yml +0 -0
  889. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/custom_codeowners_path/ruby/app/models/test.rb +0 -0
  890. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/custom_executable_name/.github/CODEOWNERS +0 -0
  891. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/custom_executable_name/app/foo.rb +0 -0
  892. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/custom_executable_name/config/code_ownership.yml +0 -0
  893. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/custom_executable_name/config/teams/foo.yml +0 -0
  894. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/custom_executable_name/config/teams/payments.yml +0 -0
  895. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/custom_executable_name/ruby/app/payments/foo.rb +0 -0
  896. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/default_executable_name/.github/CODEOWNERS +0 -0
  897. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/default_executable_name/app/bar.rb +0 -0
  898. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/default_executable_name/config/code_ownership.yml +0 -0
  899. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/default_executable_name/config/teams/bar.yml +0 -0
  900. /data/ext/cargo-vendor/{codeowners-0.3.3/tests/fixtures/multiple-directory-owners/app/services → codeowners-0.5.0/tests/fixtures/directory-codeowner-github-team/app/by_name}/.codeowner +0 -0
  901. /data/ext/cargo-vendor/{codeowners-0.3.3/tests/fixtures/multiple-directory-owners → codeowners-0.5.0/tests/fixtures/directory-codeowner-github-team}/config/code_ownership.yml +0 -0
  902. /data/ext/cargo-vendor/{codeowners-0.3.3/tests/fixtures/multiple-directory-owners → codeowners-0.5.0/tests/fixtures/directory-codeowner-github-team}/config/teams/foo.yml +0 -0
  903. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/.github/CODEOWNERS +0 -0
  904. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/config/code_ownership.yml +0 -0
  905. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/config/teams/payments.yml +0 -0
  906. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/config/teams/payroll.yml +0 -0
  907. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/gems/payroll_calculator/calculator.rb +0 -0
  908. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/ruby/app/models/bank_account.rb +0 -0
  909. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/ruby/app/models/blockchain.rb +0 -0
  910. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/ruby/app/models/payroll.rb +0 -0
  911. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/ruby/app/payments/nacha.rb +0 -0
  912. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/ruby/app/services/.codeowner +0 -0
  913. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/ruby/app/services/multi_owned.rb +0 -0
  914. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/ruby/app/unowned.rb +0 -0
  915. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/invalid_project/ruby/packages/payroll_flow/package.yml +0 -0
  916. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/.github/CODEOWNERS +0 -0
  917. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/.keep +0 -0
  918. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/config/code_ownership.yml +0 -0
  919. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/config/teams/design.yml +0 -0
  920. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/config/teams/frontend.yml +0 -0
  921. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/frontend/apps/public/index.tsx +0 -0
  922. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/frontend/packages/dashboard/package.json +0 -0
  923. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/frontend/packages/dashboard/src/index.tsx +0 -0
  924. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/frontend/packages/ui-kit/.codeowner +0 -0
  925. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/javascript_only_project/frontend/packages/ui-kit/src/button.tsx +0 -0
  926. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/missing_github_team/.github/CODEOWNERS +0 -0
  927. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/missing_github_team/config/code_ownership.yml +0 -0
  928. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/missing_github_team/config/teams/bad_team.yml +0 -0
  929. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/missing_github_team/config/teams/good.yml +0 -0
  930. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/missing_github_team/gems/pets/dog.rb +0 -0
  931. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/multiple-directory-owners/.github/CODEOWNERS +0 -0
  932. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/multiple-directory-owners/app/consumers/.codeowner +0 -0
  933. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/multiple-directory-owners/app/consumers/deep/nesting/nestdir/deep_file.rb +0 -0
  934. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/multiple-directory-owners/app/consumers/one_owner.rb +0 -0
  935. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/multiple-directory-owners/app/services/exciting/.codeowner +0 -0
  936. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/multiple-directory-owners/app/services/exciting/some_other_file.rb +0 -0
  937. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/multiple-directory-owners/config/teams/bar.yml +0 -0
  938. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/.ignore +0 -0
  939. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/config/code_ownership.yml +0 -0
  940. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/config/teams/payments.yml +0 -0
  941. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/config/teams/payroll.yml +0 -0
  942. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/config/teams/ux.yml +0 -0
  943. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/gems/payroll_calculator/calculator.rb +0 -0
  944. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/gems/pets/dog.rb +0 -0
  945. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/javascript/packages/PayrollFlow/index.tsx +0 -0
  946. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/javascript/packages/PayrollFlow/package.json +0 -0
  947. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/javascript/packages/items/(special)/.codeowner +0 -0
  948. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/javascript/packages/items/(special)/pay.ts +0 -0
  949. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/javascript/packages/items/.codeowner +0 -0
  950. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/javascript/packages/items/item.ts +0 -0
  951. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/javascript/packages/list/page-admin.tsx +0 -0
  952. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/models/bank_account.rb +0 -0
  953. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/models/payroll.rb +0 -0
  954. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/payments/foo/.codeowner +0 -0
  955. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/payments/foo/ownedby_payroll.rb +0 -0
  956. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/payments/nacha.rb +0 -0
  957. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/payroll/.codeowner +0 -0
  958. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/payroll/payroll.rb +0 -0
  959. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/views/foos/edit.erb +0 -0
  960. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/views/foos/index.html.erb +0 -0
  961. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/app/views/foos/new.html.erb +0 -0
  962. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/ignored_files/git_ignored.rb +0 -0
  963. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/ruby/packages/payroll_flow/package.yml +0 -0
  964. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project/should_be_ignored/an_ignored_file.rb +0 -0
  965. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/config/code_ownership.yml +0 -0
  966. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/config/teams/brewers.yml +0 -0
  967. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/config/teams/cubs.yml +0 -0
  968. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/config/teams/giants.yml +0 -0
  969. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/config/teams/rockies.yml +0 -0
  970. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/datepicker/package.json +0 -0
  971. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/datepicker/src/picks/dp.tsx +0 -0
  972. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/list/package.json +0 -0
  973. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/list/src/item.tsx +0 -0
  974. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/package.json +0 -0
  975. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/src/field.tsx +0 -0
  976. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/frontend/packages/components/textfield/src/fields/small.tsx +0 -0
  977. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/gems/apollo/lib/apollo.rb +0 -0
  978. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/gems/ivy/lib/ivy.rb +0 -0
  979. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/gems/lager/lib/lager.rb +0 -0
  980. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/gems/summit/lib/summit.rb +0 -0
  981. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/packs/games/app/services/stats.rb +0 -0
  982. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/packs/games/package.yml +0 -0
  983. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/packs/locations/app/services/capacity.rb +0 -0
  984. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/packs/locations/package.yml +0 -0
  985. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/packs/schedule/app/services/date.rb +0 -0
  986. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/packs/schedule/package.yml +0 -0
  987. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/ruby/app/brewers/lib/util.rb +0 -0
  988. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/ruby/app/brewers/services/play.rb +0 -0
  989. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/.codeowner +0 -0
  990. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/.codeowner +0 -0
  991. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/db/price.rb +0 -0
  992. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/models/entertainment.rb +0 -0
  993. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/ruby/app/cubs/services/play.rb +0 -0
  994. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/ruby/app/giants/services/play.rb +0 -0
  995. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/fixtures/valid_project_with_overrides/ruby/app/rockies/services/play.rb +0 -0
  996. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/git_stage_test.rs +0 -0
  997. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/invalid_project_structure_test.rs +0 -0
  998. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/missing_github_team_test.rs +0 -0
  999. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/multiple_directory_owners_test.rs +0 -0
  1000. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/run_config_executable_override_test.rs +0 -0
  1001. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/runner_api.rs +0 -0
  1002. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/untracked_files_test.rs +0 -0
  1003. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/valid_project_with_overrides_test.rs +0 -0
  1004. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tests/validate_files_test.rs +0 -0
  1005. /data/ext/cargo-vendor/{codeowners-0.3.3 → codeowners-0.5.0}/tmp/.gitkeep +0 -0
  1006. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/LICENSE-APACHE.md +0 -0
  1007. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/LICENSE-MIT.md +0 -0
  1008. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/LICENSE.md +0 -0
  1009. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/src/fmt/override.rs +0 -0
  1010. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/doc/hook__location_hook.snap +0 -0
  1011. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/doc/report_display__doc.snap +0 -0
  1012. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/doc/report_display_alt__doc.snap +0 -0
  1013. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__alt.snap +0 -0
  1014. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__charset_ascii.snap +0 -0
  1015. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__color_mode_color.snap +0 -0
  1016. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__color_mode_emphasis.snap +0 -0
  1017. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__hook.snap +0 -0
  1018. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__hook_context.snap +0 -0
  1019. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__hook_decr.snap +0 -0
  1020. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__hook_for_context.snap +0 -0
  1021. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__hook_incr.snap +0 -0
  1022. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__hook_multiple.snap +0 -0
  1023. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__hook_provider.snap +0 -0
  1024. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__multiline.snap +0 -0
  1025. /data/ext/cargo-vendor/{error-stack-0.5.0 → error-stack-0.8.0}/tests/snapshots/test_debug__full__norm.snap +0 -0
  1026. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/LICENSE-APACHE +0 -0
  1027. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/LICENSE-MIT +0 -0
  1028. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/bin/release.sh +0 -0
  1029. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/build/features.rs +0 -0
  1030. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/readme.md +0 -0
  1031. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/hidden.rs +0 -0
  1032. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/lib.rs +0 -0
  1033. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/ruby_abi_version.rs +0 -0
  1034. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/special_consts.rs +0 -0
  1035. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/symbol.rs +0 -0
  1036. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/tracking_allocator.rs +0 -0
  1037. /data/ext/cargo-vendor/{rb-sys-0.9.117 → rb-sys-0.9.130}/src/value_type.rs +0 -0
  1038. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/LICENSE-APACHE +0 -0
  1039. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/LICENSE-MIT +0 -0
  1040. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/bindings/sanitizer.rs +0 -0
  1041. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/bindings/wrapper.h +0 -0
  1042. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/lib.rs +0 -0
  1043. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/rb_config/flags.rs +0 -0
  1044. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/rb_config/library.rs +0 -0
  1045. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/rb_config/search_path.rs +0 -0
  1046. /data/ext/cargo-vendor/{rb-sys-build-0.9.117 → rb-sys-build-0.9.130}/src/utils.rs +0 -0
  1047. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/LICENSE-APACHE +0 -0
  1048. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/LICENSE-MIT +0 -0
  1049. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/build.rs +0 -0
  1050. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/src/defines.rs +0 -0
  1051. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/src/lib.rs +0 -0
  1052. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/src/rb_env.rs +0 -0
  1053. /data/ext/cargo-vendor/{rb-sys-env-0.2.2 → rb-sys-env-0.2.3}/src/utils.rs +0 -0
  1054. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/LICENSE-APACHE +0 -0
  1055. /data/ext/cargo-vendor/{rustc-hash-1.1.0 → serde-1.0.229}/LICENSE-MIT +0 -0
  1056. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/crates-io.md +0 -0
  1057. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/crate_root.rs +0 -0
  1058. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/de/ignored_any.rs +0 -0
  1059. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/de/mod.rs +0 -0
  1060. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/de/value.rs +0 -0
  1061. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/format.rs +0 -0
  1062. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/macros.rs +0 -0
  1063. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/content.rs +0 -0
  1064. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/doc.rs +0 -0
  1065. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/mod.rs +0 -0
  1066. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/seed.rs +0 -0
  1067. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/size_hint.rs +0 -0
  1068. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/private/string.rs +0 -0
  1069. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/ser/fmt.rs +0 -0
  1070. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/ser/impls.rs +0 -0
  1071. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/ser/impossible.rs +0 -0
  1072. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/ser/mod.rs +0 -0
  1073. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/core/std_error.rs +0 -0
  1074. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/integer128.rs +0 -0
  1075. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/private/de.rs +0 -0
  1076. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/private/mod.rs +0 -0
  1077. /data/ext/cargo-vendor/{serde-1.0.228 → serde-1.0.229}/src/private/ser.rs +0 -0
  1078. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/LICENSE-APACHE +0 -0
  1079. /data/ext/cargo-vendor/{serde-1.0.228 → serde_core-1.0.229}/LICENSE-MIT +0 -0
  1080. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/README.md +0 -0
  1081. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/crate_root.rs +0 -0
  1082. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/de/ignored_any.rs +0 -0
  1083. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/de/mod.rs +0 -0
  1084. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/de/value.rs +0 -0
  1085. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/format.rs +0 -0
  1086. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/macros.rs +0 -0
  1087. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/content.rs +0 -0
  1088. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/doc.rs +0 -0
  1089. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/mod.rs +0 -0
  1090. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/seed.rs +0 -0
  1091. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/size_hint.rs +0 -0
  1092. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/private/string.rs +0 -0
  1093. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/ser/fmt.rs +0 -0
  1094. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/ser/impls.rs +0 -0
  1095. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/ser/impossible.rs +0 -0
  1096. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/ser/mod.rs +0 -0
  1097. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_core-1.0.229}/src/std_error.rs +0 -0
  1098. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/LICENSE-APACHE +0 -0
  1099. /data/ext/cargo-vendor/{serde_core-1.0.228 → serde_derive-1.0.229}/LICENSE-MIT +0 -0
  1100. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/crates-io.md +0 -0
  1101. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/enum_.rs +0 -0
  1102. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/enum_internally.rs +0 -0
  1103. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/enum_untagged.rs +0 -0
  1104. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/identifier.rs +0 -0
  1105. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/struct_.rs +0 -0
  1106. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/tuple.rs +0 -0
  1107. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/de/unit.rs +0 -0
  1108. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/deprecated.rs +0 -0
  1109. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/dummy.rs +0 -0
  1110. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/fragment.rs +0 -0
  1111. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/case.rs +0 -0
  1112. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/check.rs +0 -0
  1113. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/mod.rs +0 -0
  1114. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/name.rs +0 -0
  1115. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/respan.rs +0 -0
  1116. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/internals/symbol.rs +0 -0
  1117. /data/ext/cargo-vendor/{serde_derive-1.0.228 → serde_derive-1.0.229}/src/this.rs +0 -0
  1118. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/LICENSE +0 -0
  1119. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/array_deserializer.rs +0 -0
  1120. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/array_enumerator.rs +0 -0
  1121. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/enum_deserializer.rs +0 -0
  1122. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/hash_deserializer.rs +0 -0
  1123. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/mod.rs +0 -0
  1124. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/de/variant_deserializer.rs +0 -0
  1125. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/error.rs +0 -0
  1126. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/lib.rs +0 -0
  1127. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/enums.rs +0 -0
  1128. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/map_serializer.rs +0 -0
  1129. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/mod.rs +0 -0
  1130. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/seq_serializer.rs +0 -0
  1131. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/serializer.rs +0 -0
  1132. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/struct_serializer.rs +0 -0
  1133. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/struct_variant_serializer.rs +0 -0
  1134. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/src/ser/tuple_variant_serializer.rs +0 -0
  1135. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_arrays.rs +0 -0
  1136. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_booleans.rs +0 -0
  1137. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_enums.rs +0 -0
  1138. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_floats.rs +0 -0
  1139. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_integers.rs +0 -0
  1140. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_maps.rs +0 -0
  1141. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_options.rs +0 -0
  1142. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_results.rs +0 -0
  1143. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_strings.rs +0 -0
  1144. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_structs.rs +0 -0
  1145. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_tuples.rs +0 -0
  1146. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/deserializing_vecs.rs +0 -0
  1147. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_arrays.rs +0 -0
  1148. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_booleans.rs +0 -0
  1149. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_enums.rs +0 -0
  1150. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_floats.rs +0 -0
  1151. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_integers.rs +0 -0
  1152. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_maps.rs +0 -0
  1153. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_options.rs +0 -0
  1154. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_results.rs +0 -0
  1155. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_strings.rs +0 -0
  1156. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_structs.rs +0 -0
  1157. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_tuples.rs +0 -0
  1158. /data/ext/cargo-vendor/{serde_magnus-0.10.0 → serde_magnus-0.11.0}/tests/serializing_vecs.rs +0 -0
  1159. /data/ext/cargo-vendor/{serde_derive-1.0.228 → syn-3.0.9}/LICENSE-MIT +0 -0
@@ -0,0 +1,1818 @@
1
+ use crate::internals::name::{MultiName, Name};
2
+ use crate::internals::symbol::*;
3
+ use crate::internals::{ungroup, Ctxt};
4
+ use proc_macro2::{Spacing, Span, TokenStream, TokenTree};
5
+ use quote::ToTokens;
6
+ use std::collections::BTreeSet;
7
+ use std::iter::FromIterator;
8
+ use syn::meta::ParseNestedMeta;
9
+ use syn::parse::ParseStream;
10
+ use syn::punctuated::Punctuated;
11
+ use syn::spanned::Spanned;
12
+ use syn::{token, Ident, Lifetime, Token};
13
+
14
+ // This module handles parsing of `#[serde(...)]` attributes. The entrypoints
15
+ // are `attr::Container::from_ast`, `attr::Variant::from_ast`, and
16
+ // `attr::Field::from_ast`. Each returns an instance of the corresponding
17
+ // struct. Note that none of them return a Result. Unrecognized, malformed, or
18
+ // duplicated attributes result in a span_err but otherwise are ignored. The
19
+ // user will see errors simultaneously for all bad attributes in the crate
20
+ // rather than just the first.
21
+
22
+ pub use crate::internals::case::RenameRule;
23
+
24
+ pub(crate) struct Attr<'c, T> {
25
+ cx: &'c Ctxt,
26
+ name: Symbol,
27
+ tokens: TokenStream,
28
+ value: Option<T>,
29
+ }
30
+
31
+ impl<'c, T> Attr<'c, T> {
32
+ fn none(cx: &'c Ctxt, name: Symbol) -> Self {
33
+ Attr {
34
+ cx,
35
+ name,
36
+ tokens: TokenStream::new(),
37
+ value: None,
38
+ }
39
+ }
40
+
41
+ fn set<A: ToTokens>(&mut self, obj: A, value: T) {
42
+ let tokens = obj.into_token_stream();
43
+
44
+ if self.value.is_some() {
45
+ let msg = format!("duplicate serde attribute `{}`", self.name);
46
+ self.cx.error_spanned_by(tokens, msg);
47
+ } else {
48
+ self.tokens = tokens;
49
+ self.value = Some(value);
50
+ }
51
+ }
52
+
53
+ fn set_opt<A: ToTokens>(&mut self, obj: A, value: Option<T>) {
54
+ if let Some(value) = value {
55
+ self.set(obj, value);
56
+ }
57
+ }
58
+
59
+ fn set_if_none(&mut self, value: T) {
60
+ if self.value.is_none() {
61
+ self.value = Some(value);
62
+ }
63
+ }
64
+
65
+ pub(crate) fn get(self) -> Option<T> {
66
+ self.value
67
+ }
68
+
69
+ fn get_with_tokens(self) -> Option<(TokenStream, T)> {
70
+ match self.value {
71
+ Some(v) => Some((self.tokens, v)),
72
+ None => None,
73
+ }
74
+ }
75
+ }
76
+
77
+ struct BoolAttr<'c>(Attr<'c, ()>);
78
+
79
+ impl<'c> BoolAttr<'c> {
80
+ fn none(cx: &'c Ctxt, name: Symbol) -> Self {
81
+ BoolAttr(Attr::none(cx, name))
82
+ }
83
+
84
+ fn set_true<A: ToTokens>(&mut self, obj: A) {
85
+ self.0.set(obj, ());
86
+ }
87
+
88
+ fn get(&self) -> bool {
89
+ self.0.value.is_some()
90
+ }
91
+ }
92
+
93
+ pub(crate) struct VecAttr<'c, T> {
94
+ cx: &'c Ctxt,
95
+ name: Symbol,
96
+ first_dup_tokens: TokenStream,
97
+ values: Vec<T>,
98
+ }
99
+
100
+ impl<'c, T> VecAttr<'c, T> {
101
+ fn none(cx: &'c Ctxt, name: Symbol) -> Self {
102
+ VecAttr {
103
+ cx,
104
+ name,
105
+ first_dup_tokens: TokenStream::new(),
106
+ values: Vec::new(),
107
+ }
108
+ }
109
+
110
+ fn insert<A: ToTokens>(&mut self, obj: A, value: T) {
111
+ if self.values.len() == 1 {
112
+ self.first_dup_tokens = obj.into_token_stream();
113
+ }
114
+ self.values.push(value);
115
+ }
116
+
117
+ fn at_most_one(mut self) -> Option<T> {
118
+ if self.values.len() > 1 {
119
+ let dup_token = self.first_dup_tokens;
120
+ let msg = format!("duplicate serde attribute `{}`", self.name);
121
+ self.cx.error_spanned_by(dup_token, msg);
122
+ None
123
+ } else {
124
+ self.values.pop()
125
+ }
126
+ }
127
+
128
+ pub(crate) fn get(self) -> Vec<T> {
129
+ self.values
130
+ }
131
+ }
132
+
133
+ fn unraw(ident: &Ident) -> Ident {
134
+ Ident::new(ident.to_string().trim_start_matches("r#"), ident.span())
135
+ }
136
+
137
+ #[derive(Copy, Clone)]
138
+ pub struct RenameAllRules {
139
+ pub serialize: RenameRule,
140
+ pub deserialize: RenameRule,
141
+ }
142
+
143
+ impl RenameAllRules {
144
+ /// Returns a new `RenameAllRules` with the individual rules of `self` and
145
+ /// `other_rules` joined by `RenameRules::or`.
146
+ pub fn or(self, other_rules: Self) -> Self {
147
+ Self {
148
+ serialize: self.serialize.or(other_rules.serialize),
149
+ deserialize: self.deserialize.or(other_rules.deserialize),
150
+ }
151
+ }
152
+ }
153
+
154
+ /// Represents struct or enum attribute information.
155
+ pub struct Container {
156
+ name: MultiName,
157
+ transparent: bool,
158
+ deny_unknown_fields: bool,
159
+ default: Default,
160
+ rename_all_rules: RenameAllRules,
161
+ rename_all_fields_rules: RenameAllRules,
162
+ ser_bound: Option<Vec<syn::WherePredicate>>,
163
+ de_bound: Option<Vec<syn::WherePredicate>>,
164
+ tag: TagType,
165
+ type_from: Option<syn::Type>,
166
+ type_try_from: Option<syn::Type>,
167
+ type_into: Option<syn::Type>,
168
+ remote: Option<syn::Path>,
169
+ identifier: Identifier,
170
+ serde_path: Option<syn::Path>,
171
+ is_packed: bool,
172
+ /// Error message generated when type can't be deserialized
173
+ expecting: Option<String>,
174
+ non_exhaustive: bool,
175
+ }
176
+
177
+ /// Styles of representing an enum.
178
+ pub enum TagType {
179
+ /// The default.
180
+ ///
181
+ /// ```json
182
+ /// {"variant1": {"key1": "value1", "key2": "value2"}}
183
+ /// ```
184
+ External,
185
+
186
+ /// `#[serde(tag = "type")]`
187
+ ///
188
+ /// ```json
189
+ /// {"type": "variant1", "key1": "value1", "key2": "value2"}
190
+ /// ```
191
+ Internal { tag: String },
192
+
193
+ /// `#[serde(tag = "t", content = "c")]`
194
+ ///
195
+ /// ```json
196
+ /// {"t": "variant1", "c": {"key1": "value1", "key2": "value2"}}
197
+ /// ```
198
+ Adjacent { tag: String, content: String },
199
+
200
+ /// `#[serde(untagged)]`
201
+ ///
202
+ /// ```json
203
+ /// {"key1": "value1", "key2": "value2"}
204
+ /// ```
205
+ None,
206
+ }
207
+
208
+ /// Whether this enum represents the fields of a struct or the variants of an
209
+ /// enum.
210
+ #[derive(Copy, Clone)]
211
+ pub enum Identifier {
212
+ /// It does not.
213
+ No,
214
+
215
+ /// This enum represents the fields of a struct. All of the variants must be
216
+ /// unit variants, except possibly one which is annotated with
217
+ /// `#[serde(other)]` and is a newtype variant.
218
+ Field,
219
+
220
+ /// This enum represents the variants of an enum. All of the variants must
221
+ /// be unit variants.
222
+ Variant,
223
+ }
224
+
225
+ impl Identifier {
226
+ #[cfg(feature = "deserialize_in_place")]
227
+ pub fn is_some(self) -> bool {
228
+ match self {
229
+ Identifier::No => false,
230
+ Identifier::Field | Identifier::Variant => true,
231
+ }
232
+ }
233
+ }
234
+
235
+ impl Container {
236
+ /// Extract out the `#[serde(...)]` attributes from an item.
237
+ pub fn from_ast(cx: &Ctxt, item: &syn::DeriveInput) -> Self {
238
+ let mut ser_name = Attr::none(cx, RENAME);
239
+ let mut de_name = Attr::none(cx, RENAME);
240
+ let mut transparent = BoolAttr::none(cx, TRANSPARENT);
241
+ let mut deny_unknown_fields = BoolAttr::none(cx, DENY_UNKNOWN_FIELDS);
242
+ let mut default = Attr::none(cx, DEFAULT);
243
+ let mut rename_all_ser_rule = Attr::none(cx, RENAME_ALL);
244
+ let mut rename_all_de_rule = Attr::none(cx, RENAME_ALL);
245
+ let mut rename_all_fields_ser_rule = Attr::none(cx, RENAME_ALL_FIELDS);
246
+ let mut rename_all_fields_de_rule = Attr::none(cx, RENAME_ALL_FIELDS);
247
+ let mut ser_bound = Attr::none(cx, BOUND);
248
+ let mut de_bound = Attr::none(cx, BOUND);
249
+ let mut untagged = BoolAttr::none(cx, UNTAGGED);
250
+ let mut internal_tag = Attr::none(cx, TAG);
251
+ let mut content = Attr::none(cx, CONTENT);
252
+ let mut type_from = Attr::none(cx, FROM);
253
+ let mut type_try_from = Attr::none(cx, TRY_FROM);
254
+ let mut type_into = Attr::none(cx, INTO);
255
+ let mut remote = Attr::none(cx, REMOTE);
256
+ let mut field_identifier = BoolAttr::none(cx, FIELD_IDENTIFIER);
257
+ let mut variant_identifier = BoolAttr::none(cx, VARIANT_IDENTIFIER);
258
+ let mut serde_path = Attr::none(cx, CRATE);
259
+ let mut expecting = Attr::none(cx, EXPECTING);
260
+ let mut non_exhaustive = false;
261
+
262
+ for attr in &item.attrs {
263
+ if attr.path() != SERDE {
264
+ non_exhaustive |=
265
+ matches!(&attr.meta, syn::Meta::Path(path) if path == NON_EXHAUSTIVE);
266
+ continue;
267
+ }
268
+
269
+ if let syn::Meta::List(meta) = &attr.meta {
270
+ if meta.tokens.is_empty() {
271
+ continue;
272
+ }
273
+ }
274
+
275
+ if let Err(err) = attr.parse_nested_meta(|meta| {
276
+ if meta.path == RENAME {
277
+ // #[serde(rename = "foo")]
278
+ // #[serde(rename(serialize = "foo", deserialize = "bar"))]
279
+ let (ser, de) = get_renames(cx, RENAME, &meta)?;
280
+ ser_name.set_opt(&meta.path, ser.as_ref().map(Name::from));
281
+ de_name.set_opt(&meta.path, de.as_ref().map(Name::from));
282
+ } else if meta.path == RENAME_ALL {
283
+ // #[serde(rename_all = "foo")]
284
+ // #[serde(rename_all(serialize = "foo", deserialize = "bar"))]
285
+ let one_name = meta.input.peek(Token![=]);
286
+ let (ser, de) = get_renames(cx, RENAME_ALL, &meta)?;
287
+ if let Some(ser) = ser {
288
+ match RenameRule::from_str(&ser.value()) {
289
+ Ok(rename_rule) => rename_all_ser_rule.set(&meta.path, rename_rule),
290
+ Err(err) => cx.error_spanned_by(ser, err),
291
+ }
292
+ }
293
+ if let Some(de) = de {
294
+ match RenameRule::from_str(&de.value()) {
295
+ Ok(rename_rule) => rename_all_de_rule.set(&meta.path, rename_rule),
296
+ Err(err) => {
297
+ if !one_name {
298
+ cx.error_spanned_by(de, err);
299
+ }
300
+ }
301
+ }
302
+ }
303
+ } else if meta.path == RENAME_ALL_FIELDS {
304
+ // #[serde(rename_all_fields = "foo")]
305
+ // #[serde(rename_all_fields(serialize = "foo", deserialize = "bar"))]
306
+ let one_name = meta.input.peek(Token![=]);
307
+ let (ser, de) = get_renames(cx, RENAME_ALL_FIELDS, &meta)?;
308
+
309
+ match item.data {
310
+ syn::Data::Enum(_) => {
311
+ if let Some(ser) = ser {
312
+ match RenameRule::from_str(&ser.value()) {
313
+ Ok(rename_rule) => {
314
+ rename_all_fields_ser_rule.set(&meta.path, rename_rule);
315
+ }
316
+ Err(err) => cx.error_spanned_by(ser, err),
317
+ }
318
+ }
319
+ if let Some(de) = de {
320
+ match RenameRule::from_str(&de.value()) {
321
+ Ok(rename_rule) => {
322
+ rename_all_fields_de_rule.set(&meta.path, rename_rule);
323
+ }
324
+ Err(err) => {
325
+ if !one_name {
326
+ cx.error_spanned_by(de, err);
327
+ }
328
+ }
329
+ }
330
+ }
331
+ }
332
+ syn::Data::Struct(_) => {
333
+ let msg = "#[serde(rename_all_fields)] can only be used on enums";
334
+ cx.syn_error(meta.error(msg));
335
+ }
336
+ syn::Data::Union(_) => {
337
+ let msg = "#[serde(rename_all_fields)] can only be used on enums";
338
+ cx.syn_error(meta.error(msg));
339
+ }
340
+ }
341
+ } else if meta.path == TRANSPARENT {
342
+ // #[serde(transparent)]
343
+ transparent.set_true(meta.path);
344
+ } else if meta.path == DENY_UNKNOWN_FIELDS {
345
+ // #[serde(deny_unknown_fields)]
346
+ deny_unknown_fields.set_true(meta.path);
347
+ } else if meta.path == DEFAULT {
348
+ if meta.input.peek(Token![=]) {
349
+ // #[serde(default = "...")]
350
+ if let Some(path) = parse_lit_into_expr_path(cx, DEFAULT, &meta)? {
351
+ match &item.data {
352
+ syn::Data::Struct(syn::DataStruct { fields, .. }) => match fields {
353
+ syn::Fields::Named(_) | syn::Fields::Unnamed(_) => {
354
+ default.set(&meta.path, Default::Path(path));
355
+ }
356
+ syn::Fields::Unit => {
357
+ let msg = "#[serde(default = \"...\")] can only be used on structs that have fields";
358
+ cx.syn_error(meta.error(msg));
359
+ }
360
+ },
361
+ syn::Data::Enum(_) => {
362
+ let msg = "#[serde(default = \"...\")] can only be used on structs";
363
+ cx.syn_error(meta.error(msg));
364
+ }
365
+ syn::Data::Union(_) => {
366
+ let msg = "#[serde(default = \"...\")] can only be used on structs";
367
+ cx.syn_error(meta.error(msg));
368
+ }
369
+ }
370
+ }
371
+ } else {
372
+ // #[serde(default)]
373
+ match &item.data {
374
+ syn::Data::Struct(syn::DataStruct { fields, .. }) => match fields {
375
+ syn::Fields::Named(_) | syn::Fields::Unnamed(_) => {
376
+ default.set(meta.path, Default::Default);
377
+ }
378
+ syn::Fields::Unit => {
379
+ let msg = "#[serde(default)] can only be used on structs that have fields";
380
+ cx.error_spanned_by(fields, msg);
381
+ }
382
+ },
383
+ syn::Data::Enum(_) => {
384
+ let msg = "#[serde(default)] can only be used on structs";
385
+ cx.syn_error(meta.error(msg));
386
+ }
387
+ syn::Data::Union(_) => {
388
+ let msg = "#[serde(default)] can only be used on structs";
389
+ cx.syn_error(meta.error(msg));
390
+ }
391
+ }
392
+ }
393
+ } else if meta.path == BOUND {
394
+ // #[serde(bound = "T: SomeBound")]
395
+ // #[serde(bound(serialize = "...", deserialize = "..."))]
396
+ let (ser, de) = get_where_predicates(cx, &meta)?;
397
+ ser_bound.set_opt(&meta.path, ser);
398
+ de_bound.set_opt(&meta.path, de);
399
+ } else if meta.path == UNTAGGED {
400
+ // #[serde(untagged)]
401
+ match item.data {
402
+ syn::Data::Enum(_) => {
403
+ untagged.set_true(&meta.path);
404
+ }
405
+ syn::Data::Struct(_) => {
406
+ let msg = "#[serde(untagged)] can only be used on enums";
407
+ cx.syn_error(meta.error(msg));
408
+ }
409
+ syn::Data::Union(_) => {
410
+ let msg = "#[serde(untagged)] can only be used on enums";
411
+ cx.syn_error(meta.error(msg));
412
+ }
413
+ }
414
+ } else if meta.path == TAG {
415
+ // #[serde(tag = "type")]
416
+ if let Some(s) = get_lit_str(cx, TAG, &meta)? {
417
+ match &item.data {
418
+ syn::Data::Enum(_) => {
419
+ internal_tag.set(&meta.path, s.value());
420
+ }
421
+ syn::Data::Struct(syn::DataStruct { fields, .. }) => match fields {
422
+ syn::Fields::Named(_) => {
423
+ internal_tag.set(&meta.path, s.value());
424
+ }
425
+ syn::Fields::Unnamed(_) | syn::Fields::Unit => {
426
+ let msg = "#[serde(tag = \"...\")] can only be used on enums and structs with named fields";
427
+ cx.syn_error(meta.error(msg));
428
+ }
429
+ },
430
+ syn::Data::Union(_) => {
431
+ let msg = "#[serde(tag = \"...\")] can only be used on enums and structs with named fields";
432
+ cx.syn_error(meta.error(msg));
433
+ }
434
+ }
435
+ }
436
+ } else if meta.path == CONTENT {
437
+ // #[serde(content = "c")]
438
+ if let Some(s) = get_lit_str(cx, CONTENT, &meta)? {
439
+ match &item.data {
440
+ syn::Data::Enum(_) => {
441
+ content.set(&meta.path, s.value());
442
+ }
443
+ syn::Data::Struct(_) => {
444
+ let msg = "#[serde(content = \"...\")] can only be used on enums";
445
+ cx.syn_error(meta.error(msg));
446
+ }
447
+ syn::Data::Union(_) => {
448
+ let msg = "#[serde(content = \"...\")] can only be used on enums";
449
+ cx.syn_error(meta.error(msg));
450
+ }
451
+ }
452
+ }
453
+ } else if meta.path == FROM {
454
+ // #[serde(from = "Type")]
455
+ if let Some(from_ty) = parse_lit_into_ty(cx, FROM, &meta)? {
456
+ type_from.set_opt(&meta.path, Some(from_ty));
457
+ }
458
+ } else if meta.path == TRY_FROM {
459
+ // #[serde(try_from = "Type")]
460
+ if let Some(try_from_ty) = parse_lit_into_ty(cx, TRY_FROM, &meta)? {
461
+ type_try_from.set_opt(&meta.path, Some(try_from_ty));
462
+ }
463
+ } else if meta.path == INTO {
464
+ // #[serde(into = "Type")]
465
+ if let Some(into_ty) = parse_lit_into_ty(cx, INTO, &meta)? {
466
+ type_into.set_opt(&meta.path, Some(into_ty));
467
+ }
468
+ } else if meta.path == REMOTE {
469
+ // #[serde(remote = "...")]
470
+ if let Some(path) = parse_lit_into_path(cx, REMOTE, &meta)? {
471
+ if is_primitive_path(&path, "Self") {
472
+ remote.set(&meta.path, item.ident.clone().into());
473
+ } else {
474
+ remote.set(&meta.path, path);
475
+ }
476
+ }
477
+ } else if meta.path == FIELD_IDENTIFIER {
478
+ // #[serde(field_identifier)]
479
+ field_identifier.set_true(&meta.path);
480
+ } else if meta.path == VARIANT_IDENTIFIER {
481
+ // #[serde(variant_identifier)]
482
+ variant_identifier.set_true(&meta.path);
483
+ } else if meta.path == CRATE {
484
+ // #[serde(crate = "foo")]
485
+ if let Some(path) = parse_lit_into_path(cx, CRATE, &meta)? {
486
+ serde_path.set(&meta.path, path);
487
+ }
488
+ } else if meta.path == EXPECTING {
489
+ // #[serde(expecting = "a message")]
490
+ if let Some(s) = get_lit_str(cx, EXPECTING, &meta)? {
491
+ expecting.set(&meta.path, s.value());
492
+ }
493
+ } else {
494
+ let path = meta.path.to_token_stream().to_string().replace(' ', "");
495
+ return Err(
496
+ meta.error(format_args!("unknown serde container attribute `{}`", path))
497
+ );
498
+ }
499
+ Ok(())
500
+ }) {
501
+ cx.syn_error(err);
502
+ }
503
+ }
504
+
505
+ let mut is_packed = false;
506
+ for attr in &item.attrs {
507
+ if attr.path() == REPR {
508
+ let _ = attr.parse_args_with(|input: ParseStream| {
509
+ while let Some(token) = input.parse()? {
510
+ if let TokenTree::Ident(ident) = token {
511
+ is_packed |= ident == "packed";
512
+ }
513
+ }
514
+ Ok(())
515
+ });
516
+ }
517
+ }
518
+
519
+ Container {
520
+ name: MultiName::from_attrs(Name::from(&unraw(&item.ident)), ser_name, de_name, None),
521
+ transparent: transparent.get(),
522
+ deny_unknown_fields: deny_unknown_fields.get(),
523
+ default: default.get().unwrap_or(Default::None),
524
+ rename_all_rules: RenameAllRules {
525
+ serialize: rename_all_ser_rule.get().unwrap_or(RenameRule::None),
526
+ deserialize: rename_all_de_rule.get().unwrap_or(RenameRule::None),
527
+ },
528
+ rename_all_fields_rules: RenameAllRules {
529
+ serialize: rename_all_fields_ser_rule.get().unwrap_or(RenameRule::None),
530
+ deserialize: rename_all_fields_de_rule.get().unwrap_or(RenameRule::None),
531
+ },
532
+ ser_bound: ser_bound.get(),
533
+ de_bound: de_bound.get(),
534
+ tag: decide_tag(cx, item, untagged, internal_tag, content),
535
+ type_from: type_from.get(),
536
+ type_try_from: type_try_from.get(),
537
+ type_into: type_into.get(),
538
+ remote: remote.get(),
539
+ identifier: decide_identifier(cx, item, field_identifier, variant_identifier),
540
+ serde_path: serde_path.get(),
541
+ is_packed,
542
+ expecting: expecting.get(),
543
+ non_exhaustive,
544
+ }
545
+ }
546
+
547
+ pub fn name(&self) -> &MultiName {
548
+ &self.name
549
+ }
550
+
551
+ pub fn rename_all_rules(&self) -> RenameAllRules {
552
+ self.rename_all_rules
553
+ }
554
+
555
+ pub fn rename_all_fields_rules(&self) -> RenameAllRules {
556
+ self.rename_all_fields_rules
557
+ }
558
+
559
+ pub fn transparent(&self) -> bool {
560
+ self.transparent
561
+ }
562
+
563
+ pub fn deny_unknown_fields(&self) -> bool {
564
+ self.deny_unknown_fields
565
+ }
566
+
567
+ pub fn default(&self) -> &Default {
568
+ &self.default
569
+ }
570
+
571
+ pub fn ser_bound(&self) -> Option<&[syn::WherePredicate]> {
572
+ self.ser_bound.as_ref().map(|vec| &vec[..])
573
+ }
574
+
575
+ pub fn de_bound(&self) -> Option<&[syn::WherePredicate]> {
576
+ self.de_bound.as_ref().map(|vec| &vec[..])
577
+ }
578
+
579
+ pub fn tag(&self) -> &TagType {
580
+ &self.tag
581
+ }
582
+
583
+ pub fn type_from(&self) -> Option<&syn::Type> {
584
+ self.type_from.as_ref()
585
+ }
586
+
587
+ pub fn type_try_from(&self) -> Option<&syn::Type> {
588
+ self.type_try_from.as_ref()
589
+ }
590
+
591
+ pub fn type_into(&self) -> Option<&syn::Type> {
592
+ self.type_into.as_ref()
593
+ }
594
+
595
+ pub fn remote(&self) -> Option<&syn::Path> {
596
+ self.remote.as_ref()
597
+ }
598
+
599
+ pub fn is_packed(&self) -> bool {
600
+ self.is_packed
601
+ }
602
+
603
+ pub fn identifier(&self) -> Identifier {
604
+ self.identifier
605
+ }
606
+
607
+ pub fn custom_serde_path(&self) -> Option<&syn::Path> {
608
+ self.serde_path.as_ref()
609
+ }
610
+
611
+ /// Error message generated when type can't be deserialized.
612
+ /// If `None`, default message will be used
613
+ pub fn expecting(&self) -> Option<&str> {
614
+ self.expecting.as_ref().map(String::as_ref)
615
+ }
616
+
617
+ pub fn non_exhaustive(&self) -> bool {
618
+ self.non_exhaustive
619
+ }
620
+ }
621
+
622
+ fn decide_tag(
623
+ cx: &Ctxt,
624
+ item: &syn::DeriveInput,
625
+ untagged: BoolAttr,
626
+ internal_tag: Attr<String>,
627
+ content: Attr<String>,
628
+ ) -> TagType {
629
+ match (
630
+ untagged.0.get_with_tokens(),
631
+ internal_tag.get_with_tokens(),
632
+ content.get_with_tokens(),
633
+ ) {
634
+ (None, None, None) => TagType::External,
635
+ (Some(_), None, None) => TagType::None,
636
+ (None, Some((_, tag)), None) => {
637
+ // Check that there are no tuple variants.
638
+ if let syn::Data::Enum(data) = &item.data {
639
+ for variant in &data.variants {
640
+ match &variant.fields {
641
+ syn::Fields::Named(_) | syn::Fields::Unit => {}
642
+ syn::Fields::Unnamed(fields) => {
643
+ if fields.unnamed.len() != 1 {
644
+ let msg =
645
+ "#[serde(tag = \"...\")] cannot be used with tuple variants";
646
+ cx.error_spanned_by(variant, msg);
647
+ break;
648
+ }
649
+ }
650
+ }
651
+ }
652
+ }
653
+ TagType::Internal { tag }
654
+ }
655
+ (Some((untagged_tokens, ())), Some((tag_tokens, _)), None) => {
656
+ let msg = "enum cannot be both untagged and internally tagged";
657
+ cx.error_spanned_by(untagged_tokens, msg);
658
+ cx.error_spanned_by(tag_tokens, msg);
659
+ TagType::External // doesn't matter, will error
660
+ }
661
+ (None, None, Some((content_tokens, _))) => {
662
+ let msg = "#[serde(tag = \"...\", content = \"...\")] must be used together";
663
+ cx.error_spanned_by(content_tokens, msg);
664
+ TagType::External
665
+ }
666
+ (Some((untagged_tokens, ())), None, Some((content_tokens, _))) => {
667
+ let msg = "untagged enum cannot have #[serde(content = \"...\")]";
668
+ cx.error_spanned_by(untagged_tokens, msg);
669
+ cx.error_spanned_by(content_tokens, msg);
670
+ TagType::External
671
+ }
672
+ (None, Some((_, tag)), Some((_, content))) => TagType::Adjacent { tag, content },
673
+ (Some((untagged_tokens, ())), Some((tag_tokens, _)), Some((content_tokens, _))) => {
674
+ let msg = "untagged enum cannot have #[serde(tag = \"...\", content = \"...\")]";
675
+ cx.error_spanned_by(untagged_tokens, msg);
676
+ cx.error_spanned_by(tag_tokens, msg);
677
+ cx.error_spanned_by(content_tokens, msg);
678
+ TagType::External
679
+ }
680
+ }
681
+ }
682
+
683
+ fn decide_identifier(
684
+ cx: &Ctxt,
685
+ item: &syn::DeriveInput,
686
+ field_identifier: BoolAttr,
687
+ variant_identifier: BoolAttr,
688
+ ) -> Identifier {
689
+ match (
690
+ &item.data,
691
+ field_identifier.0.get_with_tokens(),
692
+ variant_identifier.0.get_with_tokens(),
693
+ ) {
694
+ (_, None, None) => Identifier::No,
695
+ (_, Some((field_identifier_tokens, ())), Some((variant_identifier_tokens, ()))) => {
696
+ let msg =
697
+ "#[serde(field_identifier)] and #[serde(variant_identifier)] cannot both be set";
698
+ cx.error_spanned_by(field_identifier_tokens, msg);
699
+ cx.error_spanned_by(variant_identifier_tokens, msg);
700
+ Identifier::No
701
+ }
702
+ (syn::Data::Enum(_), Some(_), None) => Identifier::Field,
703
+ (syn::Data::Enum(_), None, Some(_)) => Identifier::Variant,
704
+ (syn::Data::Struct(syn::DataStruct { struct_token, .. }), Some(_), None) => {
705
+ let msg = "#[serde(field_identifier)] can only be used on an enum";
706
+ cx.error_spanned_by(struct_token, msg);
707
+ Identifier::No
708
+ }
709
+ (syn::Data::Union(syn::DataUnion { union_token, .. }), Some(_), None) => {
710
+ let msg = "#[serde(field_identifier)] can only be used on an enum";
711
+ cx.error_spanned_by(union_token, msg);
712
+ Identifier::No
713
+ }
714
+ (syn::Data::Struct(syn::DataStruct { struct_token, .. }), None, Some(_)) => {
715
+ let msg = "#[serde(variant_identifier)] can only be used on an enum";
716
+ cx.error_spanned_by(struct_token, msg);
717
+ Identifier::No
718
+ }
719
+ (syn::Data::Union(syn::DataUnion { union_token, .. }), None, Some(_)) => {
720
+ let msg = "#[serde(variant_identifier)] can only be used on an enum";
721
+ cx.error_spanned_by(union_token, msg);
722
+ Identifier::No
723
+ }
724
+ }
725
+ }
726
+
727
+ /// Represents variant attribute information
728
+ pub struct Variant {
729
+ name: MultiName,
730
+ rename_all_rules: RenameAllRules,
731
+ ser_bound: Option<Vec<syn::WherePredicate>>,
732
+ de_bound: Option<Vec<syn::WherePredicate>>,
733
+ skip_deserializing: bool,
734
+ skip_serializing: bool,
735
+ other: bool,
736
+ serialize_with: Option<syn::ExprPath>,
737
+ deserialize_with: Option<syn::ExprPath>,
738
+ borrow: Option<BorrowAttribute>,
739
+ untagged: bool,
740
+ }
741
+
742
+ struct BorrowAttribute {
743
+ path: syn::Path,
744
+ lifetimes: Option<BTreeSet<syn::Lifetime>>,
745
+ }
746
+
747
+ impl Variant {
748
+ pub fn from_ast(cx: &Ctxt, variant: &syn::Variant) -> Self {
749
+ let mut ser_name = Attr::none(cx, RENAME);
750
+ let mut de_name = Attr::none(cx, RENAME);
751
+ let mut de_aliases = VecAttr::none(cx, RENAME);
752
+ let mut skip_deserializing = BoolAttr::none(cx, SKIP_DESERIALIZING);
753
+ let mut skip_serializing = BoolAttr::none(cx, SKIP_SERIALIZING);
754
+ let mut rename_all_ser_rule = Attr::none(cx, RENAME_ALL);
755
+ let mut rename_all_de_rule = Attr::none(cx, RENAME_ALL);
756
+ let mut ser_bound = Attr::none(cx, BOUND);
757
+ let mut de_bound = Attr::none(cx, BOUND);
758
+ let mut other = BoolAttr::none(cx, OTHER);
759
+ let mut serialize_with = Attr::none(cx, SERIALIZE_WITH);
760
+ let mut deserialize_with = Attr::none(cx, DESERIALIZE_WITH);
761
+ let mut borrow = Attr::none(cx, BORROW);
762
+ let mut untagged = BoolAttr::none(cx, UNTAGGED);
763
+
764
+ for attr in &variant.attrs {
765
+ if attr.path() != SERDE {
766
+ continue;
767
+ }
768
+
769
+ if let syn::Meta::List(meta) = &attr.meta {
770
+ if meta.tokens.is_empty() {
771
+ continue;
772
+ }
773
+ }
774
+
775
+ if let Err(err) = attr.parse_nested_meta(|meta| {
776
+ if meta.path == RENAME {
777
+ // #[serde(rename = "foo")]
778
+ // #[serde(rename(serialize = "foo", deserialize = "bar"))]
779
+ let (ser, de) = get_multiple_renames(cx, &meta)?;
780
+ ser_name.set_opt(&meta.path, ser.as_ref().map(Name::from));
781
+ for de_value in de {
782
+ de_name.set_if_none(Name::from(&de_value));
783
+ de_aliases.insert(&meta.path, Name::from(&de_value));
784
+ }
785
+ } else if meta.path == ALIAS {
786
+ // #[serde(alias = "foo")]
787
+ if let Some(s) = get_lit_str(cx, ALIAS, &meta)? {
788
+ de_aliases.insert(&meta.path, Name::from(&s));
789
+ }
790
+ } else if meta.path == RENAME_ALL {
791
+ // #[serde(rename_all = "foo")]
792
+ // #[serde(rename_all(serialize = "foo", deserialize = "bar"))]
793
+ let one_name = meta.input.peek(Token![=]);
794
+ let (ser, de) = get_renames(cx, RENAME_ALL, &meta)?;
795
+ if let Some(ser) = ser {
796
+ match RenameRule::from_str(&ser.value()) {
797
+ Ok(rename_rule) => rename_all_ser_rule.set(&meta.path, rename_rule),
798
+ Err(err) => cx.error_spanned_by(ser, err),
799
+ }
800
+ }
801
+ if let Some(de) = de {
802
+ match RenameRule::from_str(&de.value()) {
803
+ Ok(rename_rule) => rename_all_de_rule.set(&meta.path, rename_rule),
804
+ Err(err) => {
805
+ if !one_name {
806
+ cx.error_spanned_by(de, err);
807
+ }
808
+ }
809
+ }
810
+ }
811
+ } else if meta.path == SKIP {
812
+ // #[serde(skip)]
813
+ skip_serializing.set_true(&meta.path);
814
+ skip_deserializing.set_true(&meta.path);
815
+ } else if meta.path == SKIP_DESERIALIZING {
816
+ // #[serde(skip_deserializing)]
817
+ skip_deserializing.set_true(&meta.path);
818
+ } else if meta.path == SKIP_SERIALIZING {
819
+ // #[serde(skip_serializing)]
820
+ skip_serializing.set_true(&meta.path);
821
+ } else if meta.path == OTHER {
822
+ // #[serde(other)]
823
+ other.set_true(&meta.path);
824
+ } else if meta.path == BOUND {
825
+ // #[serde(bound = "T: SomeBound")]
826
+ // #[serde(bound(serialize = "...", deserialize = "..."))]
827
+ let (ser, de) = get_where_predicates(cx, &meta)?;
828
+ ser_bound.set_opt(&meta.path, ser);
829
+ de_bound.set_opt(&meta.path, de);
830
+ } else if meta.path == WITH {
831
+ // #[serde(with = "...")]
832
+ if let Some(path) = parse_lit_into_expr_path(cx, WITH, &meta)? {
833
+ let mut ser_path = path.clone();
834
+ ser_path
835
+ .path
836
+ .segments
837
+ .push(Ident::new("serialize", ser_path.span()).into());
838
+ serialize_with.set(&meta.path, ser_path);
839
+ let mut de_path = path;
840
+ de_path
841
+ .path
842
+ .segments
843
+ .push(Ident::new("deserialize", de_path.span()).into());
844
+ deserialize_with.set(&meta.path, de_path);
845
+ }
846
+ } else if meta.path == SERIALIZE_WITH {
847
+ // #[serde(serialize_with = "...")]
848
+ if let Some(path) = parse_lit_into_expr_path(cx, SERIALIZE_WITH, &meta)? {
849
+ serialize_with.set(&meta.path, path);
850
+ }
851
+ } else if meta.path == DESERIALIZE_WITH {
852
+ // #[serde(deserialize_with = "...")]
853
+ if let Some(path) = parse_lit_into_expr_path(cx, DESERIALIZE_WITH, &meta)? {
854
+ deserialize_with.set(&meta.path, path);
855
+ }
856
+ } else if meta.path == BORROW {
857
+ let borrow_attribute = if meta.input.peek(Token![=]) {
858
+ // #[serde(borrow = "'a + 'b")]
859
+ let lifetimes = parse_lit_into_lifetimes(cx, &meta)?;
860
+ BorrowAttribute {
861
+ path: meta.path.clone(),
862
+ lifetimes: Some(lifetimes),
863
+ }
864
+ } else {
865
+ // #[serde(borrow)]
866
+ BorrowAttribute {
867
+ path: meta.path.clone(),
868
+ lifetimes: None,
869
+ }
870
+ };
871
+ match &variant.fields {
872
+ syn::Fields::Unnamed(fields) if fields.unnamed.len() == 1 => {
873
+ borrow.set(&meta.path, borrow_attribute);
874
+ }
875
+ _ => {
876
+ let msg = "#[serde(borrow)] may only be used on newtype variants";
877
+ cx.error_spanned_by(variant, msg);
878
+ }
879
+ }
880
+ } else if meta.path == UNTAGGED {
881
+ untagged.set_true(&meta.path);
882
+ } else {
883
+ let path = meta.path.to_token_stream().to_string().replace(' ', "");
884
+ return Err(
885
+ meta.error(format_args!("unknown serde variant attribute `{}`", path))
886
+ );
887
+ }
888
+ Ok(())
889
+ }) {
890
+ cx.syn_error(err);
891
+ }
892
+ }
893
+
894
+ Variant {
895
+ name: MultiName::from_attrs(
896
+ Name::from(&unraw(&variant.ident)),
897
+ ser_name,
898
+ de_name,
899
+ Some(de_aliases),
900
+ ),
901
+ rename_all_rules: RenameAllRules {
902
+ serialize: rename_all_ser_rule.get().unwrap_or(RenameRule::None),
903
+ deserialize: rename_all_de_rule.get().unwrap_or(RenameRule::None),
904
+ },
905
+ ser_bound: ser_bound.get(),
906
+ de_bound: de_bound.get(),
907
+ skip_deserializing: skip_deserializing.get(),
908
+ skip_serializing: skip_serializing.get(),
909
+ other: other.get(),
910
+ serialize_with: serialize_with.get(),
911
+ deserialize_with: deserialize_with.get(),
912
+ borrow: borrow.get(),
913
+ untagged: untagged.get(),
914
+ }
915
+ }
916
+
917
+ pub fn name(&self) -> &MultiName {
918
+ &self.name
919
+ }
920
+
921
+ pub fn aliases(&self) -> &BTreeSet<Name> {
922
+ self.name.deserialize_aliases()
923
+ }
924
+
925
+ pub fn rename_by_rules(&mut self, rules: RenameAllRules) {
926
+ if !self.name.serialize_renamed {
927
+ self.name.serialize.value =
928
+ rules.serialize.apply_to_variant(&self.name.serialize.value);
929
+ }
930
+ if !self.name.deserialize_renamed {
931
+ self.name.deserialize.value = rules
932
+ .deserialize
933
+ .apply_to_variant(&self.name.deserialize.value);
934
+ }
935
+ self.name
936
+ .deserialize_aliases
937
+ .insert(self.name.deserialize.clone());
938
+ }
939
+
940
+ pub fn rename_all_rules(&self) -> RenameAllRules {
941
+ self.rename_all_rules
942
+ }
943
+
944
+ pub fn ser_bound(&self) -> Option<&[syn::WherePredicate]> {
945
+ self.ser_bound.as_ref().map(|vec| &vec[..])
946
+ }
947
+
948
+ pub fn de_bound(&self) -> Option<&[syn::WherePredicate]> {
949
+ self.de_bound.as_ref().map(|vec| &vec[..])
950
+ }
951
+
952
+ pub fn skip_deserializing(&self) -> bool {
953
+ self.skip_deserializing
954
+ }
955
+
956
+ pub fn skip_serializing(&self) -> bool {
957
+ self.skip_serializing
958
+ }
959
+
960
+ pub fn other(&self) -> bool {
961
+ self.other
962
+ }
963
+
964
+ pub fn serialize_with(&self) -> Option<&syn::ExprPath> {
965
+ self.serialize_with.as_ref()
966
+ }
967
+
968
+ pub fn deserialize_with(&self) -> Option<&syn::ExprPath> {
969
+ self.deserialize_with.as_ref()
970
+ }
971
+
972
+ pub fn untagged(&self) -> bool {
973
+ self.untagged
974
+ }
975
+ }
976
+
977
+ /// Represents field attribute information
978
+ pub struct Field {
979
+ name: MultiName,
980
+ skip_serializing: bool,
981
+ skip_deserializing: bool,
982
+ skip_serializing_if: Option<syn::ExprPath>,
983
+ default: Default,
984
+ serialize_with: Option<syn::ExprPath>,
985
+ deserialize_with: Option<syn::ExprPath>,
986
+ ser_bound: Option<Vec<syn::WherePredicate>>,
987
+ de_bound: Option<Vec<syn::WherePredicate>>,
988
+ borrowed_lifetimes: BTreeSet<syn::Lifetime>,
989
+ getter: Option<syn::ExprPath>,
990
+ flatten: bool,
991
+ transparent: bool,
992
+ }
993
+
994
+ /// Represents the default to use for a field when deserializing.
995
+ pub enum Default {
996
+ /// Field must always be specified because it does not have a default.
997
+ None,
998
+ /// The default is given by `std::default::Default::default()`.
999
+ Default,
1000
+ /// The default is given by this function.
1001
+ Path(syn::ExprPath),
1002
+ }
1003
+
1004
+ impl Default {
1005
+ pub fn is_none(&self) -> bool {
1006
+ match self {
1007
+ Default::None => true,
1008
+ Default::Default | Default::Path(_) => false,
1009
+ }
1010
+ }
1011
+ }
1012
+
1013
+ impl Field {
1014
+ /// Extract out the `#[serde(...)]` attributes from a struct field.
1015
+ pub fn from_ast(
1016
+ cx: &Ctxt,
1017
+ index: usize,
1018
+ field: &syn::Field,
1019
+ attrs: Option<&Variant>,
1020
+ container_default: &Default,
1021
+ private: &Ident,
1022
+ ) -> Self {
1023
+ let mut ser_name = Attr::none(cx, RENAME);
1024
+ let mut de_name = Attr::none(cx, RENAME);
1025
+ let mut de_aliases = VecAttr::none(cx, RENAME);
1026
+ let mut skip_serializing = BoolAttr::none(cx, SKIP_SERIALIZING);
1027
+ let mut skip_deserializing = BoolAttr::none(cx, SKIP_DESERIALIZING);
1028
+ let mut skip_serializing_if = Attr::none(cx, SKIP_SERIALIZING_IF);
1029
+ let mut default = Attr::none(cx, DEFAULT);
1030
+ let mut serialize_with = Attr::none(cx, SERIALIZE_WITH);
1031
+ let mut deserialize_with = Attr::none(cx, DESERIALIZE_WITH);
1032
+ let mut ser_bound = Attr::none(cx, BOUND);
1033
+ let mut de_bound = Attr::none(cx, BOUND);
1034
+ let mut borrowed_lifetimes = Attr::none(cx, BORROW);
1035
+ let mut getter = Attr::none(cx, GETTER);
1036
+ let mut flatten = BoolAttr::none(cx, FLATTEN);
1037
+
1038
+ let ident = match &field.ident {
1039
+ Some(ident) => Name::from(&unraw(ident)),
1040
+ None => Name {
1041
+ value: index.to_string(),
1042
+ span: Span::call_site(),
1043
+ },
1044
+ };
1045
+
1046
+ if let Some(borrow_attribute) = attrs.and_then(|variant| variant.borrow.as_ref()) {
1047
+ if let Ok(borrowable) = borrowable_lifetimes(cx, &ident, field) {
1048
+ if let Some(lifetimes) = &borrow_attribute.lifetimes {
1049
+ for lifetime in lifetimes {
1050
+ if !borrowable.contains(lifetime) {
1051
+ let msg =
1052
+ format!("field `{}` does not have lifetime {}", ident, lifetime);
1053
+ cx.error_spanned_by(field, msg);
1054
+ }
1055
+ }
1056
+ borrowed_lifetimes.set(&borrow_attribute.path, lifetimes.clone());
1057
+ } else {
1058
+ borrowed_lifetimes.set(&borrow_attribute.path, borrowable);
1059
+ }
1060
+ }
1061
+ }
1062
+
1063
+ for attr in &field.attrs {
1064
+ if attr.path() != SERDE {
1065
+ continue;
1066
+ }
1067
+
1068
+ if let syn::Meta::List(meta) = &attr.meta {
1069
+ if meta.tokens.is_empty() {
1070
+ continue;
1071
+ }
1072
+ }
1073
+
1074
+ if let Err(err) = attr.parse_nested_meta(|meta| {
1075
+ if meta.path == RENAME {
1076
+ // #[serde(rename = "foo")]
1077
+ // #[serde(rename(serialize = "foo", deserialize = "bar"))]
1078
+ let (ser, de) = get_multiple_renames(cx, &meta)?;
1079
+ ser_name.set_opt(&meta.path, ser.as_ref().map(Name::from));
1080
+ for de_value in de {
1081
+ de_name.set_if_none(Name::from(&de_value));
1082
+ de_aliases.insert(&meta.path, Name::from(&de_value));
1083
+ }
1084
+ } else if meta.path == ALIAS {
1085
+ // #[serde(alias = "foo")]
1086
+ if let Some(s) = get_lit_str(cx, ALIAS, &meta)? {
1087
+ de_aliases.insert(&meta.path, Name::from(&s));
1088
+ }
1089
+ } else if meta.path == DEFAULT {
1090
+ if meta.input.peek(Token![=]) {
1091
+ // #[serde(default = "...")]
1092
+ if let Some(path) = parse_lit_into_expr_path(cx, DEFAULT, &meta)? {
1093
+ default.set(&meta.path, Default::Path(path));
1094
+ }
1095
+ } else {
1096
+ // #[serde(default)]
1097
+ default.set(&meta.path, Default::Default);
1098
+ }
1099
+ } else if meta.path == SKIP_SERIALIZING {
1100
+ // #[serde(skip_serializing)]
1101
+ skip_serializing.set_true(&meta.path);
1102
+ } else if meta.path == SKIP_DESERIALIZING {
1103
+ // #[serde(skip_deserializing)]
1104
+ skip_deserializing.set_true(&meta.path);
1105
+ } else if meta.path == SKIP {
1106
+ // #[serde(skip)]
1107
+ skip_serializing.set_true(&meta.path);
1108
+ skip_deserializing.set_true(&meta.path);
1109
+ } else if meta.path == SKIP_SERIALIZING_IF {
1110
+ // #[serde(skip_serializing_if = "...")]
1111
+ if let Some(path) = parse_lit_into_expr_path(cx, SKIP_SERIALIZING_IF, &meta)? {
1112
+ skip_serializing_if.set(&meta.path, path);
1113
+ }
1114
+ } else if meta.path == SERIALIZE_WITH {
1115
+ // #[serde(serialize_with = "...")]
1116
+ if let Some(path) = parse_lit_into_expr_path(cx, SERIALIZE_WITH, &meta)? {
1117
+ serialize_with.set(&meta.path, path);
1118
+ }
1119
+ } else if meta.path == DESERIALIZE_WITH {
1120
+ // #[serde(deserialize_with = "...")]
1121
+ if let Some(path) = parse_lit_into_expr_path(cx, DESERIALIZE_WITH, &meta)? {
1122
+ deserialize_with.set(&meta.path, path);
1123
+ }
1124
+ } else if meta.path == WITH {
1125
+ // #[serde(with = "...")]
1126
+ if let Some(path) = parse_lit_into_expr_path(cx, WITH, &meta)? {
1127
+ let mut ser_path = path.clone();
1128
+ ser_path
1129
+ .path
1130
+ .segments
1131
+ .push(Ident::new("serialize", ser_path.span()).into());
1132
+ serialize_with.set(&meta.path, ser_path);
1133
+ let mut de_path = path;
1134
+ de_path
1135
+ .path
1136
+ .segments
1137
+ .push(Ident::new("deserialize", de_path.span()).into());
1138
+ deserialize_with.set(&meta.path, de_path);
1139
+ }
1140
+ } else if meta.path == BOUND {
1141
+ // #[serde(bound = "T: SomeBound")]
1142
+ // #[serde(bound(serialize = "...", deserialize = "..."))]
1143
+ let (ser, de) = get_where_predicates(cx, &meta)?;
1144
+ ser_bound.set_opt(&meta.path, ser);
1145
+ de_bound.set_opt(&meta.path, de);
1146
+ } else if meta.path == BORROW {
1147
+ if meta.input.peek(Token![=]) {
1148
+ // #[serde(borrow = "'a + 'b")]
1149
+ let lifetimes = parse_lit_into_lifetimes(cx, &meta)?;
1150
+ if let Ok(borrowable) = borrowable_lifetimes(cx, &ident, field) {
1151
+ for lifetime in &lifetimes {
1152
+ if !borrowable.contains(lifetime) {
1153
+ let msg = format!(
1154
+ "field `{}` does not have lifetime {}",
1155
+ ident, lifetime,
1156
+ );
1157
+ cx.error_spanned_by(field, msg);
1158
+ }
1159
+ }
1160
+ borrowed_lifetimes.set(&meta.path, lifetimes);
1161
+ }
1162
+ } else {
1163
+ // #[serde(borrow)]
1164
+ if let Ok(borrowable) = borrowable_lifetimes(cx, &ident, field) {
1165
+ borrowed_lifetimes.set(&meta.path, borrowable);
1166
+ }
1167
+ }
1168
+ } else if meta.path == GETTER {
1169
+ // #[serde(getter = "...")]
1170
+ if let Some(path) = parse_lit_into_expr_path(cx, GETTER, &meta)? {
1171
+ getter.set(&meta.path, path);
1172
+ }
1173
+ } else if meta.path == FLATTEN {
1174
+ // #[serde(flatten)]
1175
+ flatten.set_true(&meta.path);
1176
+ } else {
1177
+ let path = meta.path.to_token_stream().to_string().replace(' ', "");
1178
+ return Err(
1179
+ meta.error(format_args!("unknown serde field attribute `{}`", path))
1180
+ );
1181
+ }
1182
+ Ok(())
1183
+ }) {
1184
+ cx.syn_error(err);
1185
+ }
1186
+ }
1187
+
1188
+ // If skip_deserializing, initialize the field to Default::default() unless a
1189
+ // different default is specified by `#[serde(default = "...")]` on
1190
+ // ourselves or our container (e.g. the struct we are in).
1191
+ if container_default.is_none() && skip_deserializing.0.value.is_some() {
1192
+ default.set_if_none(Default::Default);
1193
+ }
1194
+
1195
+ let mut borrowed_lifetimes = borrowed_lifetimes.get().unwrap_or_default();
1196
+ if !borrowed_lifetimes.is_empty() {
1197
+ // Cow<str> and Cow<[u8]> never borrow by default:
1198
+ //
1199
+ // impl<'de, 'a, T: ?Sized> Deserialize<'de> for Cow<'a, T>
1200
+ //
1201
+ // A #[serde(borrow)] attribute enables borrowing that corresponds
1202
+ // roughly to these impls:
1203
+ //
1204
+ // impl<'de: 'a, 'a> Deserialize<'de> for Cow<'a, str>
1205
+ // impl<'de: 'a, 'a> Deserialize<'de> for Cow<'a, [u8]>
1206
+ if is_cow(&field.ty, is_str) {
1207
+ let mut path = syn::Path {
1208
+ leading_colon: None,
1209
+ segments: Punctuated::new(),
1210
+ };
1211
+ let span = Span::call_site();
1212
+ path.segments.push(Ident::new("_serde", span).into());
1213
+ path.segments.push(private.clone().into());
1214
+ path.segments.push(Ident::new("de", span).into());
1215
+ path.segments
1216
+ .push(Ident::new("borrow_cow_str", span).into());
1217
+ let expr = syn::ExprPath {
1218
+ attrs: Vec::new(),
1219
+ qself: None,
1220
+ path,
1221
+ };
1222
+ deserialize_with.set_if_none(expr);
1223
+ } else if is_cow(&field.ty, is_slice_u8) {
1224
+ let mut path = syn::Path {
1225
+ leading_colon: None,
1226
+ segments: Punctuated::new(),
1227
+ };
1228
+ let span = Span::call_site();
1229
+ path.segments.push(Ident::new("_serde", span).into());
1230
+ path.segments.push(private.clone().into());
1231
+ path.segments.push(Ident::new("de", span).into());
1232
+ path.segments
1233
+ .push(Ident::new("borrow_cow_bytes", span).into());
1234
+ let expr = syn::ExprPath {
1235
+ attrs: Vec::new(),
1236
+ qself: None,
1237
+ path,
1238
+ };
1239
+ deserialize_with.set_if_none(expr);
1240
+ }
1241
+ } else if is_implicitly_borrowed(&field.ty) {
1242
+ // Types &str and &[u8] are always implicitly borrowed. No need for
1243
+ // a #[serde(borrow)].
1244
+ collect_lifetimes(&field.ty, &mut borrowed_lifetimes);
1245
+ }
1246
+
1247
+ Field {
1248
+ name: MultiName::from_attrs(ident, ser_name, de_name, Some(de_aliases)),
1249
+ skip_serializing: skip_serializing.get(),
1250
+ skip_deserializing: skip_deserializing.get(),
1251
+ skip_serializing_if: skip_serializing_if.get(),
1252
+ default: default.get().unwrap_or(Default::None),
1253
+ serialize_with: serialize_with.get(),
1254
+ deserialize_with: deserialize_with.get(),
1255
+ ser_bound: ser_bound.get(),
1256
+ de_bound: de_bound.get(),
1257
+ borrowed_lifetimes,
1258
+ getter: getter.get(),
1259
+ flatten: flatten.get(),
1260
+ transparent: false,
1261
+ }
1262
+ }
1263
+
1264
+ pub fn name(&self) -> &MultiName {
1265
+ &self.name
1266
+ }
1267
+
1268
+ pub fn aliases(&self) -> &BTreeSet<Name> {
1269
+ self.name.deserialize_aliases()
1270
+ }
1271
+
1272
+ pub fn rename_by_rules(&mut self, rules: RenameAllRules) {
1273
+ if !self.name.serialize_renamed {
1274
+ self.name.serialize.value = rules.serialize.apply_to_field(&self.name.serialize.value);
1275
+ }
1276
+ if !self.name.deserialize_renamed {
1277
+ self.name.deserialize.value = rules
1278
+ .deserialize
1279
+ .apply_to_field(&self.name.deserialize.value);
1280
+ }
1281
+ self.name
1282
+ .deserialize_aliases
1283
+ .insert(self.name.deserialize.clone());
1284
+ }
1285
+
1286
+ pub fn skip_serializing(&self) -> bool {
1287
+ self.skip_serializing
1288
+ }
1289
+
1290
+ pub fn skip_deserializing(&self) -> bool {
1291
+ self.skip_deserializing
1292
+ }
1293
+
1294
+ pub fn skip_serializing_if(&self) -> Option<&syn::ExprPath> {
1295
+ self.skip_serializing_if.as_ref()
1296
+ }
1297
+
1298
+ pub fn default(&self) -> &Default {
1299
+ &self.default
1300
+ }
1301
+
1302
+ pub fn serialize_with(&self) -> Option<&syn::ExprPath> {
1303
+ self.serialize_with.as_ref()
1304
+ }
1305
+
1306
+ pub fn deserialize_with(&self) -> Option<&syn::ExprPath> {
1307
+ self.deserialize_with.as_ref()
1308
+ }
1309
+
1310
+ pub fn ser_bound(&self) -> Option<&[syn::WherePredicate]> {
1311
+ self.ser_bound.as_ref().map(|vec| &vec[..])
1312
+ }
1313
+
1314
+ pub fn de_bound(&self) -> Option<&[syn::WherePredicate]> {
1315
+ self.de_bound.as_ref().map(|vec| &vec[..])
1316
+ }
1317
+
1318
+ pub fn borrowed_lifetimes(&self) -> &BTreeSet<syn::Lifetime> {
1319
+ &self.borrowed_lifetimes
1320
+ }
1321
+
1322
+ pub fn getter(&self) -> Option<&syn::ExprPath> {
1323
+ self.getter.as_ref()
1324
+ }
1325
+
1326
+ pub fn flatten(&self) -> bool {
1327
+ self.flatten
1328
+ }
1329
+
1330
+ pub fn transparent(&self) -> bool {
1331
+ self.transparent
1332
+ }
1333
+
1334
+ pub fn mark_transparent(&mut self) {
1335
+ self.transparent = true;
1336
+ }
1337
+ }
1338
+
1339
+ type SerAndDe<T> = (Option<T>, Option<T>);
1340
+
1341
+ fn get_ser_and_de<'c, T, F, R>(
1342
+ cx: &'c Ctxt,
1343
+ attr_name: Symbol,
1344
+ meta: &ParseNestedMeta,
1345
+ f: F,
1346
+ ) -> syn::Result<(VecAttr<'c, T>, VecAttr<'c, T>)>
1347
+ where
1348
+ T: Clone,
1349
+ F: Fn(&Ctxt, Symbol, Symbol, &ParseNestedMeta) -> syn::Result<R>,
1350
+ R: Into<Option<T>>,
1351
+ {
1352
+ let mut ser_meta = VecAttr::none(cx, attr_name);
1353
+ let mut de_meta = VecAttr::none(cx, attr_name);
1354
+
1355
+ let lookahead = meta.input.lookahead1();
1356
+ if lookahead.peek(Token![=]) {
1357
+ if let Some(both) = f(cx, attr_name, attr_name, meta)?.into() {
1358
+ ser_meta.insert(&meta.path, both.clone());
1359
+ de_meta.insert(&meta.path, both);
1360
+ }
1361
+ } else if lookahead.peek(token::Paren) {
1362
+ meta.parse_nested_meta(|meta| {
1363
+ if meta.path == SERIALIZE {
1364
+ if let Some(v) = f(cx, attr_name, SERIALIZE, &meta)?.into() {
1365
+ ser_meta.insert(&meta.path, v);
1366
+ }
1367
+ } else if meta.path == DESERIALIZE {
1368
+ if let Some(v) = f(cx, attr_name, DESERIALIZE, &meta)?.into() {
1369
+ de_meta.insert(&meta.path, v);
1370
+ }
1371
+ } else {
1372
+ return Err(meta.error(format_args!(
1373
+ "malformed {0} attribute, expected `{0}(serialize = ..., deserialize = ...)`",
1374
+ attr_name,
1375
+ )));
1376
+ }
1377
+ Ok(())
1378
+ })?;
1379
+ } else {
1380
+ return Err(lookahead.error());
1381
+ }
1382
+
1383
+ Ok((ser_meta, de_meta))
1384
+ }
1385
+
1386
+ fn get_renames(
1387
+ cx: &Ctxt,
1388
+ attr_name: Symbol,
1389
+ meta: &ParseNestedMeta,
1390
+ ) -> syn::Result<SerAndDe<syn::LitStr>> {
1391
+ let (ser, de) = get_ser_and_de(cx, attr_name, meta, get_lit_str2)?;
1392
+ Ok((ser.at_most_one(), de.at_most_one()))
1393
+ }
1394
+
1395
+ fn get_multiple_renames(
1396
+ cx: &Ctxt,
1397
+ meta: &ParseNestedMeta,
1398
+ ) -> syn::Result<(Option<syn::LitStr>, Vec<syn::LitStr>)> {
1399
+ let (ser, de) = get_ser_and_de(cx, RENAME, meta, get_lit_str2)?;
1400
+ Ok((ser.at_most_one(), de.get()))
1401
+ }
1402
+
1403
+ fn get_where_predicates(
1404
+ cx: &Ctxt,
1405
+ meta: &ParseNestedMeta,
1406
+ ) -> syn::Result<SerAndDe<Vec<syn::WherePredicate>>> {
1407
+ let (ser, de) = get_ser_and_de(cx, BOUND, meta, parse_lit_into_where)?;
1408
+ Ok((ser.at_most_one(), de.at_most_one()))
1409
+ }
1410
+
1411
+ fn get_lit_str(
1412
+ cx: &Ctxt,
1413
+ attr_name: Symbol,
1414
+ meta: &ParseNestedMeta,
1415
+ ) -> syn::Result<Option<syn::LitStr>> {
1416
+ get_lit_str2(cx, attr_name, attr_name, meta)
1417
+ }
1418
+
1419
+ fn get_lit_str2(
1420
+ cx: &Ctxt,
1421
+ attr_name: Symbol,
1422
+ meta_item_name: Symbol,
1423
+ meta: &ParseNestedMeta,
1424
+ ) -> syn::Result<Option<syn::LitStr>> {
1425
+ let expr: syn::Expr = meta.value()?.parse()?;
1426
+ let mut value = &expr;
1427
+ while let syn::Expr::Group(e) = value {
1428
+ value = &e.expr;
1429
+ }
1430
+ if let syn::Expr::Lit(syn::ExprLit {
1431
+ lit: syn::Lit::Str(lit),
1432
+ ..
1433
+ }) = value
1434
+ {
1435
+ let suffix = lit.suffix();
1436
+ if !suffix.is_empty() {
1437
+ cx.error_spanned_by(
1438
+ lit,
1439
+ format!("unexpected suffix `{}` on string literal", suffix),
1440
+ );
1441
+ }
1442
+ Ok(Some(lit.clone()))
1443
+ } else {
1444
+ cx.error_spanned_by(
1445
+ expr,
1446
+ format!(
1447
+ "expected serde {} attribute to be a string: `{} = \"...\"`",
1448
+ attr_name, meta_item_name
1449
+ ),
1450
+ );
1451
+ Ok(None)
1452
+ }
1453
+ }
1454
+
1455
+ fn parse_lit_into_path(
1456
+ cx: &Ctxt,
1457
+ attr_name: Symbol,
1458
+ meta: &ParseNestedMeta,
1459
+ ) -> syn::Result<Option<syn::Path>> {
1460
+ let Some(string) = get_lit_str(cx, attr_name, meta)? else {
1461
+ return Ok(None);
1462
+ };
1463
+
1464
+ Ok(match string.parse() {
1465
+ Ok(path) => Some(path),
1466
+ Err(_) => {
1467
+ cx.error_spanned_by(
1468
+ &string,
1469
+ format!("failed to parse path: {:?}", string.value()),
1470
+ );
1471
+ None
1472
+ }
1473
+ })
1474
+ }
1475
+
1476
+ fn parse_lit_into_expr_path(
1477
+ cx: &Ctxt,
1478
+ attr_name: Symbol,
1479
+ meta: &ParseNestedMeta,
1480
+ ) -> syn::Result<Option<syn::ExprPath>> {
1481
+ let Some(string) = get_lit_str(cx, attr_name, meta)? else {
1482
+ return Ok(None);
1483
+ };
1484
+
1485
+ Ok(match string.parse() {
1486
+ Ok(expr) => Some(expr),
1487
+ Err(_) => {
1488
+ cx.error_spanned_by(
1489
+ &string,
1490
+ format!("failed to parse path: {:?}", string.value()),
1491
+ );
1492
+ None
1493
+ }
1494
+ })
1495
+ }
1496
+
1497
+ fn parse_lit_into_where(
1498
+ cx: &Ctxt,
1499
+ attr_name: Symbol,
1500
+ meta_item_name: Symbol,
1501
+ meta: &ParseNestedMeta,
1502
+ ) -> syn::Result<Vec<syn::WherePredicate>> {
1503
+ let Some(string) = get_lit_str2(cx, attr_name, meta_item_name, meta)? else {
1504
+ return Ok(Vec::new());
1505
+ };
1506
+
1507
+ Ok(
1508
+ match string.parse_with(Punctuated::<syn::WherePredicate, Token![,]>::parse_terminated) {
1509
+ Ok(predicates) => Vec::from_iter(predicates),
1510
+ Err(err) => {
1511
+ cx.error_spanned_by(string, err);
1512
+ Vec::new()
1513
+ }
1514
+ },
1515
+ )
1516
+ }
1517
+
1518
+ fn parse_lit_into_ty(
1519
+ cx: &Ctxt,
1520
+ attr_name: Symbol,
1521
+ meta: &ParseNestedMeta,
1522
+ ) -> syn::Result<Option<syn::Type>> {
1523
+ let Some(string) = get_lit_str(cx, attr_name, meta)? else {
1524
+ return Ok(None);
1525
+ };
1526
+
1527
+ Ok(match string.parse() {
1528
+ Ok(ty) => Some(ty),
1529
+ Err(_) => {
1530
+ cx.error_spanned_by(
1531
+ &string,
1532
+ format!("failed to parse type: {} = {:?}", attr_name, string.value()),
1533
+ );
1534
+ None
1535
+ }
1536
+ })
1537
+ }
1538
+
1539
+ // Parses a string literal like "'a + 'b + 'c" containing a nonempty list of
1540
+ // lifetimes separated by `+`.
1541
+ fn parse_lit_into_lifetimes(
1542
+ cx: &Ctxt,
1543
+ meta: &ParseNestedMeta,
1544
+ ) -> syn::Result<BTreeSet<syn::Lifetime>> {
1545
+ let Some(string) = get_lit_str(cx, BORROW, meta)? else {
1546
+ return Ok(BTreeSet::new());
1547
+ };
1548
+
1549
+ if let Ok(lifetimes) = string.parse_with(|input: ParseStream| {
1550
+ let mut set = BTreeSet::new();
1551
+ while !input.is_empty() {
1552
+ let lifetime: Lifetime = input.parse()?;
1553
+ if !set.insert(lifetime.clone()) {
1554
+ cx.error_spanned_by(
1555
+ &string,
1556
+ format!("duplicate borrowed lifetime `{}`", lifetime),
1557
+ );
1558
+ }
1559
+ if input.is_empty() {
1560
+ break;
1561
+ }
1562
+ input.parse::<Token![+]>()?;
1563
+ }
1564
+ Ok(set)
1565
+ }) {
1566
+ if lifetimes.is_empty() {
1567
+ cx.error_spanned_by(string, "at least one lifetime must be borrowed");
1568
+ }
1569
+ return Ok(lifetimes);
1570
+ }
1571
+
1572
+ cx.error_spanned_by(
1573
+ &string,
1574
+ format!("failed to parse borrowed lifetimes: {:?}", string.value()),
1575
+ );
1576
+ Ok(BTreeSet::new())
1577
+ }
1578
+
1579
+ fn is_implicitly_borrowed(ty: &syn::Type) -> bool {
1580
+ is_implicitly_borrowed_reference(ty) || is_option(ty, is_implicitly_borrowed_reference)
1581
+ }
1582
+
1583
+ fn is_implicitly_borrowed_reference(ty: &syn::Type) -> bool {
1584
+ is_reference(ty, is_str) || is_reference(ty, is_slice_u8)
1585
+ }
1586
+
1587
+ // Whether the type looks like it might be `std::borrow::Cow<T>` where elem="T".
1588
+ // This can have false negatives and false positives.
1589
+ //
1590
+ // False negative:
1591
+ //
1592
+ // use std::borrow::Cow as Pig;
1593
+ //
1594
+ // #[derive(Deserialize)]
1595
+ // struct S<'a> {
1596
+ // #[serde(borrow)]
1597
+ // pig: Pig<'a, str>,
1598
+ // }
1599
+ //
1600
+ // False positive:
1601
+ //
1602
+ // type str = [i16];
1603
+ //
1604
+ // #[derive(Deserialize)]
1605
+ // struct S<'a> {
1606
+ // #[serde(borrow)]
1607
+ // cow: Cow<'a, str>,
1608
+ // }
1609
+ fn is_cow(ty: &syn::Type, elem: fn(&syn::Type) -> bool) -> bool {
1610
+ let path = match ungroup(ty) {
1611
+ syn::Type::Path(ty) => &ty.path,
1612
+ _ => {
1613
+ return false;
1614
+ }
1615
+ };
1616
+ let Some(seg) = path.segments.last() else {
1617
+ return false;
1618
+ };
1619
+ let args = match &seg.arguments {
1620
+ syn::PathArguments::AngleBracketed(bracketed) => &bracketed.args,
1621
+ _ => {
1622
+ return false;
1623
+ }
1624
+ };
1625
+ seg.ident == "Cow"
1626
+ && args.len() == 2
1627
+ && match (&args[0], &args[1]) {
1628
+ (syn::GenericArgument::Lifetime(_), syn::GenericArgument::Type(arg)) => elem(arg),
1629
+ _ => false,
1630
+ }
1631
+ }
1632
+
1633
+ fn is_option(ty: &syn::Type, elem: fn(&syn::Type) -> bool) -> bool {
1634
+ let path = match ungroup(ty) {
1635
+ syn::Type::Path(ty) => &ty.path,
1636
+ _ => {
1637
+ return false;
1638
+ }
1639
+ };
1640
+ let Some(seg) = path.segments.last() else {
1641
+ return false;
1642
+ };
1643
+ let args = match &seg.arguments {
1644
+ syn::PathArguments::AngleBracketed(bracketed) => &bracketed.args,
1645
+ _ => {
1646
+ return false;
1647
+ }
1648
+ };
1649
+ seg.ident == "Option"
1650
+ && args.len() == 1
1651
+ && match &args[0] {
1652
+ syn::GenericArgument::Type(arg) => elem(arg),
1653
+ _ => false,
1654
+ }
1655
+ }
1656
+
1657
+ // Whether the type looks like it might be `&T` where elem="T". This can have
1658
+ // false negatives and false positives.
1659
+ //
1660
+ // False negative:
1661
+ //
1662
+ // type Yarn = str;
1663
+ //
1664
+ // #[derive(Deserialize)]
1665
+ // struct S<'a> {
1666
+ // r: &'a Yarn,
1667
+ // }
1668
+ //
1669
+ // False positive:
1670
+ //
1671
+ // type str = [i16];
1672
+ //
1673
+ // #[derive(Deserialize)]
1674
+ // struct S<'a> {
1675
+ // r: &'a str,
1676
+ // }
1677
+ fn is_reference(ty: &syn::Type, elem: fn(&syn::Type) -> bool) -> bool {
1678
+ match ungroup(ty) {
1679
+ syn::Type::Reference(ty) => ty.mutability.is_none() && elem(&ty.elem),
1680
+ _ => false,
1681
+ }
1682
+ }
1683
+
1684
+ fn is_str(ty: &syn::Type) -> bool {
1685
+ is_primitive_type(ty, "str")
1686
+ }
1687
+
1688
+ fn is_slice_u8(ty: &syn::Type) -> bool {
1689
+ match ungroup(ty) {
1690
+ syn::Type::Slice(ty) => is_primitive_type(&ty.elem, "u8"),
1691
+ _ => false,
1692
+ }
1693
+ }
1694
+
1695
+ fn is_primitive_type(ty: &syn::Type, primitive: &str) -> bool {
1696
+ match ungroup(ty) {
1697
+ syn::Type::Path(ty) => ty.qself.is_none() && is_primitive_path(&ty.path, primitive),
1698
+ _ => false,
1699
+ }
1700
+ }
1701
+
1702
+ fn is_primitive_path(path: &syn::Path, primitive: &str) -> bool {
1703
+ path.leading_colon.is_none()
1704
+ && path.segments.len() == 1
1705
+ && path.segments[0].ident == primitive
1706
+ && path.segments[0].arguments.is_empty()
1707
+ }
1708
+
1709
+ // All lifetimes that this type could borrow from a Deserializer.
1710
+ //
1711
+ // For example a type `S<'a, 'b>` could borrow `'a` and `'b`. On the other hand
1712
+ // a type `for<'a> fn(&'a str)` could not borrow `'a` from the Deserializer.
1713
+ //
1714
+ // This is used when there is an explicit or implicit `#[serde(borrow)]`
1715
+ // attribute on the field so there must be at least one borrowable lifetime.
1716
+ fn borrowable_lifetimes(
1717
+ cx: &Ctxt,
1718
+ name: &Name,
1719
+ field: &syn::Field,
1720
+ ) -> Result<BTreeSet<syn::Lifetime>, ()> {
1721
+ let mut lifetimes = BTreeSet::new();
1722
+ collect_lifetimes(&field.ty, &mut lifetimes);
1723
+ if lifetimes.is_empty() {
1724
+ let msg = format!("field `{}` has no lifetimes to borrow", name);
1725
+ cx.error_spanned_by(field, msg);
1726
+ Err(())
1727
+ } else {
1728
+ Ok(lifetimes)
1729
+ }
1730
+ }
1731
+
1732
+ fn collect_lifetimes(ty: &syn::Type, out: &mut BTreeSet<syn::Lifetime>) {
1733
+ match ty {
1734
+ #![cfg_attr(all(test, exhaustive), deny(non_exhaustive_omitted_patterns))]
1735
+ syn::Type::Slice(ty) => {
1736
+ collect_lifetimes(&ty.elem, out);
1737
+ }
1738
+ syn::Type::Array(ty) => {
1739
+ collect_lifetimes(&ty.elem, out);
1740
+ }
1741
+ syn::Type::Ptr(ty) => {
1742
+ collect_lifetimes(&ty.elem, out);
1743
+ }
1744
+ syn::Type::Reference(ty) => {
1745
+ out.extend(ty.lifetime.iter().cloned());
1746
+ collect_lifetimes(&ty.elem, out);
1747
+ }
1748
+ syn::Type::Tuple(ty) => {
1749
+ for elem in &ty.elems {
1750
+ collect_lifetimes(elem, out);
1751
+ }
1752
+ }
1753
+ syn::Type::Path(ty) => {
1754
+ if let Some(qself) = &ty.qself {
1755
+ collect_lifetimes(&qself.ty, out);
1756
+ }
1757
+ for seg in &ty.path.segments {
1758
+ if let syn::PathArguments::AngleBracketed(bracketed) = &seg.arguments {
1759
+ for arg in &bracketed.args {
1760
+ match arg {
1761
+ syn::GenericArgument::Lifetime(lifetime) => {
1762
+ out.insert(lifetime.clone());
1763
+ }
1764
+ syn::GenericArgument::Type(ty) => {
1765
+ collect_lifetimes(ty, out);
1766
+ }
1767
+ syn::GenericArgument::AssocType(binding) => {
1768
+ collect_lifetimes(&binding.ty, out);
1769
+ }
1770
+ syn::GenericArgument::Const(_)
1771
+ | syn::GenericArgument::AssocConst(_)
1772
+ | syn::GenericArgument::Constraint(_)
1773
+ | _ => {}
1774
+ }
1775
+ }
1776
+ }
1777
+ }
1778
+ }
1779
+ syn::Type::Paren(ty) => {
1780
+ collect_lifetimes(&ty.elem, out);
1781
+ }
1782
+ syn::Type::Group(ty) => {
1783
+ collect_lifetimes(&ty.elem, out);
1784
+ }
1785
+ syn::Type::Macro(ty) => {
1786
+ collect_lifetimes_from_tokens(ty.mac.tokens.clone(), out);
1787
+ }
1788
+ syn::Type::FnPtr(_)
1789
+ | syn::Type::Never(_)
1790
+ | syn::Type::TraitObject(_)
1791
+ | syn::Type::ImplTrait(_)
1792
+ | syn::Type::Infer(_)
1793
+ | syn::Type::Verbatim(_) => {}
1794
+
1795
+ _ => {}
1796
+ }
1797
+ }
1798
+
1799
+ fn collect_lifetimes_from_tokens(tokens: TokenStream, out: &mut BTreeSet<syn::Lifetime>) {
1800
+ let mut iter = tokens.into_iter();
1801
+ while let Some(tt) = iter.next() {
1802
+ match &tt {
1803
+ TokenTree::Punct(op) if op.as_char() == '\'' && op.spacing() == Spacing::Joint => {
1804
+ if let Some(TokenTree::Ident(ident)) = iter.next() {
1805
+ out.insert(syn::Lifetime {
1806
+ apostrophe: op.span(),
1807
+ ident,
1808
+ });
1809
+ }
1810
+ }
1811
+ TokenTree::Group(group) => {
1812
+ let tokens = group.stream();
1813
+ collect_lifetimes_from_tokens(tokens, out);
1814
+ }
1815
+ _ => {}
1816
+ }
1817
+ }
1818
+ }