html-to-markdown 2.23.4 → 2.24.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 (585) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +7 -7
  3. data/README.md +9 -7
  4. data/ext/html-to-markdown-rb/native/Cargo.lock +21 -21
  5. data/ext/html-to-markdown-rb/native/Cargo.toml +1 -3
  6. data/lib/html_to_markdown/cli_proxy.rb +5 -2
  7. data/lib/html_to_markdown/version.rb +1 -1
  8. data/rust-vendor/cc/.cargo-checksum.json +1 -1
  9. data/rust-vendor/cc/.cargo_vcs_info.json +1 -1
  10. data/rust-vendor/cc/CHANGELOG.md +7 -0
  11. data/rust-vendor/cc/Cargo.lock +1 -1
  12. data/rust-vendor/cc/Cargo.toml +1 -1
  13. data/rust-vendor/cc/Cargo.toml.orig +1 -1
  14. data/rust-vendor/cc/src/target/generated.rs +1 -0
  15. data/rust-vendor/cc/src/target/parser.rs +4 -0
  16. data/rust-vendor/html-to-markdown-rs/README.md +1 -1
  17. data/rust-vendor/html-to-markdown-rs/src/convert_api.rs +90 -15
  18. data/rust-vendor/html-to-markdown-rs/src/converter/block/preformatted.rs +15 -4
  19. data/rust-vendor/html-to-markdown-rs/src/converter/handlers/graphic.rs +5 -3
  20. data/rust-vendor/html-to-markdown-rs/src/converter/media/svg.rs +5 -1
  21. data/rust-vendor/html-to-markdown-rs/src/converter/text/processing.rs +15 -8
  22. data/rust-vendor/html-to-markdown-rs/src/converter/utility/preprocessing.rs +43 -18
  23. data/rust-vendor/html-to-markdown-rs/src/lib.rs +6 -6
  24. data/rust-vendor/html-to-markdown-rs/src/validation.rs +68 -29
  25. data/rust-vendor/html-to-markdown-rs/tests/issue_190_regressions.rs +121 -0
  26. data/rust-vendor/html-to-markdown-rs/tests/skip_images_test.rs +21 -0
  27. data/rust-vendor/proc-macro2/.cargo-checksum.json +1 -1
  28. data/rust-vendor/proc-macro2/.cargo_vcs_info.json +1 -1
  29. data/rust-vendor/proc-macro2/Cargo.lock +14 -89
  30. data/rust-vendor/proc-macro2/Cargo.toml +1 -1
  31. data/rust-vendor/proc-macro2/Cargo.toml.orig +1 -1
  32. data/rust-vendor/proc-macro2/src/fallback.rs +37 -23
  33. data/rust-vendor/proc-macro2/src/lib.rs +1 -1
  34. data/rust-vendor/quote/.cargo-checksum.json +1 -1
  35. data/rust-vendor/quote/.cargo_vcs_info.json +1 -1
  36. data/rust-vendor/quote/.github/workflows/ci.yml +1 -1
  37. data/rust-vendor/quote/Cargo.lock +17 -17
  38. data/rust-vendor/quote/Cargo.toml +1 -1
  39. data/rust-vendor/quote/Cargo.toml.orig +1 -1
  40. data/rust-vendor/quote/src/format.rs +2 -2
  41. data/rust-vendor/quote/src/lib.rs +1 -1
  42. data/rust-vendor/quote/src/runtime.rs +2 -2
  43. data/rust-vendor/quote/tests/test.rs +6 -0
  44. data/rust-vendor/quote/tests/ui/does-not-have-iter-interpolated-dup.stderr +2 -2
  45. data/rust-vendor/quote/tests/ui/does-not-have-iter-interpolated.stderr +2 -2
  46. data/rust-vendor/quote/tests/ui/does-not-have-iter-separated.stderr +2 -2
  47. data/rust-vendor/quote/tests/ui/does-not-have-iter.stderr +2 -2
  48. data/rust-vendor/quote/tests/ui/not-repeatable.stderr +8 -8
  49. data/rust-vendor/siphasher/.cargo-checksum.json +1 -1
  50. data/rust-vendor/siphasher/.cargo_vcs_info.json +1 -1
  51. data/rust-vendor/siphasher/.github/workflows/issues.yml +17 -0
  52. data/rust-vendor/siphasher/COPYING +1 -1
  53. data/rust-vendor/siphasher/Cargo.lock +89 -0
  54. data/rust-vendor/siphasher/Cargo.toml +23 -13
  55. data/rust-vendor/siphasher/Cargo.toml.orig +1 -1
  56. data/rust-vendor/siphasher/src/common.rs +65 -0
  57. data/rust-vendor/siphasher/src/lib.rs +1 -1
  58. data/rust-vendor/siphasher/src/sip.rs +2 -68
  59. data/rust-vendor/siphasher/src/sip128.rs +15 -74
  60. data/rust-vendor/siphasher/src/tests.rs +1 -1
  61. data/rust-vendor/siphasher/src/tests128.rs +1 -1
  62. data/rust-vendor/uuid/.cargo-checksum.json +1 -1
  63. data/rust-vendor/uuid/.cargo_vcs_info.json +1 -1
  64. data/rust-vendor/uuid/Cargo.lock +125 -96
  65. data/rust-vendor/uuid/Cargo.toml +4 -11
  66. data/rust-vendor/uuid/Cargo.toml.orig +5 -14
  67. data/rust-vendor/uuid/README.md +3 -3
  68. data/rust-vendor/uuid/src/builder.rs +2 -1
  69. data/rust-vendor/uuid/src/external/serde_support.rs +209 -142
  70. data/rust-vendor/uuid/src/lib.rs +9 -11
  71. data/rust-vendor/uuid/src/macros.rs +9 -54
  72. data/rust-vendor/uuid/src/non_nil.rs +49 -2
  73. data/rust-vendor/web_atoms/.cargo-checksum.json +1 -1
  74. data/rust-vendor/web_atoms/.cargo_vcs_info.json +1 -1
  75. data/rust-vendor/web_atoms/Cargo.lock +1 -1
  76. data/rust-vendor/web_atoms/Cargo.toml +1 -1
  77. data/rust-vendor/web_atoms/Cargo.toml.orig +1 -1
  78. data/rust-vendor/web_atoms/local_names.txt +3 -0
  79. data/rust-vendor/zerocopy/.cargo-checksum.json +1 -1
  80. data/rust-vendor/zerocopy/.cargo_vcs_info.json +1 -1
  81. data/rust-vendor/zerocopy/Cargo.lock +5 -9
  82. data/rust-vendor/zerocopy/Cargo.toml +10 -18
  83. data/rust-vendor/zerocopy/Cargo.toml.orig +6 -14
  84. data/rust-vendor/zerocopy/Cargo.toml.std +58 -0
  85. data/rust-vendor/zerocopy/agent_docs/ui_tests.md +5 -5
  86. data/rust-vendor/zerocopy/cargo.sh +1 -1
  87. data/rust-vendor/zerocopy/ci/check_fmt.sh +1 -1
  88. data/rust-vendor/zerocopy/ci/check_readme.sh +1 -1
  89. data/rust-vendor/zerocopy/ci/check_stale_stderr.sh +44 -0
  90. data/rust-vendor/zerocopy/githooks/pre-push +2 -0
  91. data/rust-vendor/zerocopy/src/byte_slice.rs +1 -1
  92. data/rust-vendor/zerocopy/src/byteorder.rs +0 -1
  93. data/rust-vendor/zerocopy/src/impls.rs +334 -118
  94. data/rust-vendor/zerocopy/src/layout.rs +9 -0
  95. data/rust-vendor/zerocopy/src/lib.rs +163 -74
  96. data/rust-vendor/zerocopy/src/macros.rs +4 -8
  97. data/rust-vendor/zerocopy/src/pointer/inner.rs +4 -4
  98. data/rust-vendor/zerocopy/src/pointer/invariant.rs +22 -5
  99. data/rust-vendor/zerocopy/src/pointer/mod.rs +155 -18
  100. data/rust-vendor/zerocopy/src/pointer/ptr.rs +133 -182
  101. data/rust-vendor/zerocopy/src/pointer/transmute.rs +99 -106
  102. data/rust-vendor/zerocopy/src/ref.rs +4 -4
  103. data/rust-vendor/zerocopy/src/util/macro_util.rs +73 -127
  104. data/rust-vendor/zerocopy/src/util/macros.rs +61 -150
  105. data/rust-vendor/zerocopy/src/wrappers.rs +249 -3
  106. data/rust-vendor/zerocopy/tests/include.rs +67 -0
  107. data/rust-vendor/zerocopy/tests/ui-msrv/diagnostic-not-implemented-from-bytes.rs +1 -3
  108. data/rust-vendor/zerocopy/tests/ui-msrv/diagnostic-not-implemented-from-bytes.stderr +6 -6
  109. data/rust-vendor/zerocopy/tests/ui-msrv/diagnostic-not-implemented-from-zeros.rs +1 -3
  110. data/rust-vendor/zerocopy/tests/ui-msrv/diagnostic-not-implemented-from-zeros.stderr +4 -4
  111. data/rust-vendor/zerocopy/tests/ui-msrv/diagnostic-not-implemented-immutable.rs +1 -3
  112. data/rust-vendor/zerocopy/tests/ui-msrv/diagnostic-not-implemented-immutable.stderr +6 -6
  113. data/rust-vendor/zerocopy/tests/ui-msrv/diagnostic-not-implemented-into-bytes.rs +1 -3
  114. data/rust-vendor/zerocopy/tests/ui-msrv/diagnostic-not-implemented-into-bytes.stderr +6 -6
  115. data/rust-vendor/zerocopy/tests/ui-msrv/diagnostic-not-implemented-issue-1296.rs +1 -3
  116. data/rust-vendor/zerocopy/tests/ui-msrv/diagnostic-not-implemented-issue-1296.stderr +8 -8
  117. data/rust-vendor/zerocopy/tests/ui-msrv/diagnostic-not-implemented-known-layout.rs +1 -3
  118. data/rust-vendor/zerocopy/tests/ui-msrv/diagnostic-not-implemented-known-layout.stderr +6 -6
  119. data/rust-vendor/zerocopy/tests/ui-msrv/diagnostic-not-implemented-try-from-bytes.rs +1 -3
  120. data/rust-vendor/zerocopy/tests/ui-msrv/diagnostic-not-implemented-try-from-bytes.stderr +6 -6
  121. data/rust-vendor/zerocopy/tests/ui-msrv/diagnostic-not-implemented-unaligned.rs +1 -3
  122. data/rust-vendor/zerocopy/tests/ui-msrv/diagnostic-not-implemented-unaligned.stderr +4 -4
  123. data/rust-vendor/zerocopy/tests/ui-msrv/include_value_not_from_bytes.rs +3 -5
  124. data/rust-vendor/zerocopy/tests/ui-msrv/include_value_not_from_bytes.stderr +10 -10
  125. data/rust-vendor/zerocopy/tests/ui-msrv/include_value_wrong_size.rs +1 -4
  126. data/rust-vendor/zerocopy/tests/ui-msrv/include_value_wrong_size.stderr +3 -3
  127. data/rust-vendor/zerocopy/tests/ui-msrv/invalid-impls/invalid-impls.rs +0 -1
  128. data/rust-vendor/zerocopy/tests/ui-msrv/invalid-impls/invalid-impls.stderr +35 -35
  129. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-dst-not-frombytes.rs +1 -3
  130. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-dst-not-frombytes.stderr +6 -6
  131. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-const.rs +1 -3
  132. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-const.stderr +10 -10
  133. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-not-a-reference.rs +0 -2
  134. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-not-a-reference.stderr +2 -2
  135. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-not-frombytes.rs +0 -2
  136. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-not-frombytes.stderr +2 -2
  137. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-not-intobytes.rs +0 -2
  138. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-not-intobytes.stderr +2 -2
  139. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-unsized.rs +0 -2
  140. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-dst-unsized.stderr +2 -2
  141. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-src-dst-not-references.rs +0 -2
  142. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-src-dst-not-references.stderr +2 -2
  143. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-src-immutable.rs +0 -2
  144. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-src-immutable.stderr +2 -2
  145. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-src-not-a-reference.rs +0 -2
  146. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-src-not-a-reference.stderr +2 -2
  147. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-src-not-frombytes.rs +0 -2
  148. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-src-not-frombytes.stderr +2 -2
  149. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-src-not-intobytes.rs +0 -2
  150. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-src-not-intobytes.stderr +2 -2
  151. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-src-unsized.rs +0 -2
  152. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-mut-src-unsized.stderr +2 -2
  153. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ptr-to-usize.rs +0 -2
  154. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ptr-to-usize.stderr +4 -4
  155. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-mutable.rs +0 -2
  156. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-mutable.stderr +6 -6
  157. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-not-a-reference.rs +0 -2
  158. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-not-a-reference.stderr +6 -6
  159. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-not-frombytes.rs +1 -3
  160. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-not-frombytes.stderr +6 -6
  161. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-not-nocell.rs +1 -3
  162. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-not-nocell.stderr +6 -6
  163. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-unsized.rs +0 -2
  164. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-dst-unsized.stderr +2 -2
  165. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-src-dst-not-references.rs +0 -2
  166. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-src-dst-not-references.stderr +8 -8
  167. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-src-not-a-reference.rs +0 -2
  168. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-src-not-a-reference.stderr +2 -2
  169. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-src-not-intobytes.rs +1 -3
  170. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-src-not-intobytes.stderr +12 -12
  171. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-src-not-nocell.rs +1 -3
  172. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-src-not-nocell.stderr +12 -12
  173. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-src-unsized.rs +0 -2
  174. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-ref-src-unsized.stderr +2 -2
  175. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-size-decrease.rs +1 -3
  176. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-size-decrease.stderr +2 -2
  177. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-size-increase-allow-shrink.rs +1 -3
  178. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-size-increase-allow-shrink.stderr +2 -2
  179. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-size-increase.rs +1 -3
  180. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-size-increase.stderr +2 -2
  181. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-src-not-intobytes.rs +1 -3
  182. data/rust-vendor/zerocopy/tests/ui-msrv/transmute-src-not-intobytes.stderr +6 -6
  183. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute-dst-not-tryfrombytes.rs +1 -3
  184. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute-dst-not-tryfrombytes.stderr +12 -12
  185. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute-size-decrease.rs +1 -3
  186. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute-size-decrease.stderr +2 -2
  187. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute-size-increase.rs +1 -3
  188. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute-size-increase.stderr +2 -2
  189. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute-src-not-intobytes.rs +1 -3
  190. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute-src-not-intobytes.stderr +4 -4
  191. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_mut-alignment-increase.rs +1 -3
  192. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_mut-alignment-increase.stderr +2 -2
  193. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_mut-dst-not-tryfrombytes.rs +1 -3
  194. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_mut-dst-not-tryfrombytes.stderr +16 -16
  195. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_mut-size-decrease.rs +1 -3
  196. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_mut-size-decrease.stderr +2 -2
  197. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_mut-size-increase.rs +1 -3
  198. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_mut-size-increase.stderr +4 -4
  199. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_mut-src-not-frombytes.rs +0 -2
  200. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_mut-src-not-frombytes.stderr +6 -6
  201. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_mut-src-not-intobytes.rs +0 -2
  202. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_mut-src-not-intobytes.stderr +6 -6
  203. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_ref-alignment-increase.rs +1 -3
  204. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_ref-alignment-increase.stderr +2 -2
  205. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_ref-dst-mutable.rs +0 -2
  206. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_ref-dst-mutable.stderr +4 -4
  207. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_ref-dst-not-immutable-tryfrombytes.rs +1 -3
  208. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_ref-dst-not-immutable-tryfrombytes.stderr +16 -16
  209. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_ref-size-decrease.rs +1 -3
  210. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_ref-size-decrease.stderr +2 -2
  211. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_ref-size-increase.rs +1 -3
  212. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_ref-size-increase.stderr +2 -2
  213. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_ref-src-not-immutable-intobytes.rs +1 -3
  214. data/rust-vendor/zerocopy/tests/ui-msrv/try_transmute_ref-src-not-immutable-intobytes.stderr +8 -8
  215. data/rust-vendor/zerocopy/tests/ui-nightly/diagnostic-not-implemented-from-bytes.rs +1 -3
  216. data/rust-vendor/zerocopy/tests/ui-nightly/diagnostic-not-implemented-from-bytes.stderr +15 -15
  217. data/rust-vendor/zerocopy/tests/ui-nightly/diagnostic-not-implemented-from-zeros.rs +1 -3
  218. data/rust-vendor/zerocopy/tests/ui-nightly/diagnostic-not-implemented-from-zeros.stderr +12 -12
  219. data/rust-vendor/zerocopy/tests/ui-nightly/diagnostic-not-implemented-immutable.rs +1 -3
  220. data/rust-vendor/zerocopy/tests/ui-nightly/diagnostic-not-implemented-immutable.stderr +13 -13
  221. data/rust-vendor/zerocopy/tests/ui-nightly/diagnostic-not-implemented-into-bytes.rs +1 -3
  222. data/rust-vendor/zerocopy/tests/ui-nightly/diagnostic-not-implemented-into-bytes.stderr +8 -8
  223. data/rust-vendor/zerocopy/tests/ui-nightly/diagnostic-not-implemented-issue-1296.rs +1 -3
  224. data/rust-vendor/zerocopy/tests/ui-nightly/diagnostic-not-implemented-issue-1296.stderr +16 -16
  225. data/rust-vendor/zerocopy/tests/ui-nightly/diagnostic-not-implemented-known-layout.rs +1 -3
  226. data/rust-vendor/zerocopy/tests/ui-nightly/diagnostic-not-implemented-known-layout.stderr +8 -8
  227. data/rust-vendor/zerocopy/tests/ui-nightly/diagnostic-not-implemented-try-from-bytes.rs +1 -3
  228. data/rust-vendor/zerocopy/tests/ui-nightly/diagnostic-not-implemented-try-from-bytes.stderr +15 -15
  229. data/rust-vendor/zerocopy/tests/ui-nightly/diagnostic-not-implemented-unaligned.rs +1 -3
  230. data/rust-vendor/zerocopy/tests/ui-nightly/diagnostic-not-implemented-unaligned.stderr +5 -5
  231. data/rust-vendor/zerocopy/tests/ui-nightly/include_value_not_from_bytes.rs +3 -5
  232. data/rust-vendor/zerocopy/tests/ui-nightly/include_value_not_from_bytes.stderr +21 -21
  233. data/rust-vendor/zerocopy/tests/ui-nightly/include_value_wrong_size.rs +1 -4
  234. data/rust-vendor/zerocopy/tests/ui-nightly/include_value_wrong_size.stderr +8 -8
  235. data/rust-vendor/zerocopy/tests/ui-nightly/invalid-impls/invalid-impls.rs +0 -1
  236. data/rust-vendor/zerocopy/tests/ui-nightly/invalid-impls/invalid-impls.stderr +35 -51
  237. data/rust-vendor/zerocopy/tests/ui-nightly/ptr-is-invariant-over-v.stderr +2 -2
  238. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-dst-not-frombytes.rs +1 -3
  239. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-dst-not-frombytes.stderr +15 -15
  240. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-const.rs +1 -3
  241. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-const.stderr +7 -7
  242. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-dst-not-a-reference.rs +0 -2
  243. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-dst-not-a-reference.stderr +2 -2
  244. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-dst-not-frombytes.rs +0 -2
  245. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-dst-not-frombytes.stderr +12 -12
  246. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-dst-not-intobytes.rs +0 -2
  247. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-dst-not-intobytes.stderr +5 -5
  248. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-dst-unsized.rs +0 -2
  249. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-dst-unsized.stderr +3 -3
  250. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-src-dst-not-references.rs +0 -2
  251. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-src-dst-not-references.stderr +3 -3
  252. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-src-immutable.rs +0 -2
  253. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-src-immutable.stderr +2 -2
  254. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-src-not-a-reference.rs +0 -2
  255. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-src-not-a-reference.stderr +3 -3
  256. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-src-not-frombytes.rs +0 -2
  257. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-src-not-frombytes.stderr +12 -12
  258. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-src-not-intobytes.rs +0 -2
  259. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-src-not-intobytes.stderr +5 -5
  260. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-src-unsized.rs +0 -2
  261. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-mut-src-unsized.stderr +3 -3
  262. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ptr-to-usize.rs +0 -2
  263. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ptr-to-usize.stderr +4 -4
  264. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-dst-mutable.rs +0 -2
  265. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-dst-mutable.stderr +6 -6
  266. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-dst-not-a-reference.rs +0 -2
  267. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-dst-not-a-reference.stderr +6 -6
  268. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-dst-not-frombytes.rs +1 -3
  269. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-dst-not-frombytes.stderr +16 -16
  270. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-dst-not-nocell.rs +1 -3
  271. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-dst-not-nocell.stderr +14 -14
  272. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-dst-unsized.rs +0 -2
  273. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-dst-unsized.stderr +3 -3
  274. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-src-dst-not-references.rs +0 -2
  275. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-src-dst-not-references.stderr +9 -9
  276. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-src-not-a-reference.rs +0 -2
  277. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-src-not-a-reference.stderr +3 -3
  278. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-src-not-intobytes.rs +1 -3
  279. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-src-not-intobytes.stderr +18 -18
  280. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-src-not-nocell.rs +1 -3
  281. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-src-not-nocell.stderr +28 -28
  282. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-src-unsized.rs +0 -2
  283. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-ref-src-unsized.stderr +3 -3
  284. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-size-decrease.rs +1 -3
  285. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-size-decrease.stderr +4 -4
  286. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-size-increase-allow-shrink.rs +1 -3
  287. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-size-increase-allow-shrink.stderr +4 -4
  288. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-size-increase.rs +1 -3
  289. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-size-increase.stderr +4 -4
  290. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-src-not-intobytes.rs +1 -3
  291. data/rust-vendor/zerocopy/tests/ui-nightly/transmute-src-not-intobytes.stderr +8 -8
  292. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute-dst-not-tryfrombytes.rs +1 -3
  293. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute-dst-not-tryfrombytes.stderr +43 -43
  294. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute-size-decrease.rs +1 -3
  295. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute-size-decrease.stderr +2 -2
  296. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute-size-increase.rs +1 -3
  297. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute-size-increase.stderr +2 -2
  298. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute-src-not-intobytes.rs +1 -3
  299. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute-src-not-intobytes.stderr +8 -8
  300. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_mut-alignment-increase.rs +1 -3
  301. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_mut-alignment-increase.stderr +4 -4
  302. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_mut-dst-not-tryfrombytes.rs +1 -3
  303. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_mut-dst-not-tryfrombytes.stderr +51 -51
  304. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_mut-size-decrease.rs +1 -3
  305. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_mut-size-decrease.stderr +2 -2
  306. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_mut-size-increase.rs +1 -3
  307. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_mut-size-increase.stderr +4 -4
  308. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_mut-src-not-frombytes.rs +0 -2
  309. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_mut-src-not-frombytes.stderr +29 -29
  310. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_mut-src-not-intobytes.rs +0 -2
  311. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_mut-src-not-intobytes.stderr +22 -22
  312. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_ref-alignment-increase.rs +1 -3
  313. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_ref-alignment-increase.stderr +4 -4
  314. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_ref-dst-mutable.rs +0 -2
  315. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_ref-dst-mutable.stderr +6 -6
  316. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_ref-dst-not-immutable-tryfrombytes.rs +1 -3
  317. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_ref-dst-not-immutable-tryfrombytes.stderr +56 -56
  318. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_ref-size-decrease.rs +1 -3
  319. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_ref-size-decrease.stderr +2 -2
  320. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_ref-size-increase.rs +1 -3
  321. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_ref-size-increase.stderr +4 -4
  322. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_ref-src-not-immutable-intobytes.rs +1 -3
  323. data/rust-vendor/zerocopy/tests/ui-nightly/try_transmute_ref-src-not-immutable-intobytes.stderr +21 -21
  324. data/rust-vendor/zerocopy/tests/ui-stable/diagnostic-not-implemented-from-bytes.rs +1 -3
  325. data/rust-vendor/zerocopy/tests/ui-stable/diagnostic-not-implemented-from-bytes.stderr +15 -15
  326. data/rust-vendor/zerocopy/tests/ui-stable/diagnostic-not-implemented-from-zeros.rs +1 -3
  327. data/rust-vendor/zerocopy/tests/ui-stable/diagnostic-not-implemented-from-zeros.stderr +12 -12
  328. data/rust-vendor/zerocopy/tests/ui-stable/diagnostic-not-implemented-immutable.rs +1 -3
  329. data/rust-vendor/zerocopy/tests/ui-stable/diagnostic-not-implemented-immutable.stderr +13 -13
  330. data/rust-vendor/zerocopy/tests/ui-stable/diagnostic-not-implemented-into-bytes.rs +1 -3
  331. data/rust-vendor/zerocopy/tests/ui-stable/diagnostic-not-implemented-into-bytes.stderr +8 -8
  332. data/rust-vendor/zerocopy/tests/ui-stable/diagnostic-not-implemented-issue-1296.rs +1 -3
  333. data/rust-vendor/zerocopy/tests/ui-stable/diagnostic-not-implemented-issue-1296.stderr +16 -16
  334. data/rust-vendor/zerocopy/tests/ui-stable/diagnostic-not-implemented-known-layout.rs +1 -3
  335. data/rust-vendor/zerocopy/tests/ui-stable/diagnostic-not-implemented-known-layout.stderr +8 -8
  336. data/rust-vendor/zerocopy/tests/ui-stable/diagnostic-not-implemented-try-from-bytes.rs +1 -3
  337. data/rust-vendor/zerocopy/tests/ui-stable/diagnostic-not-implemented-try-from-bytes.stderr +15 -15
  338. data/rust-vendor/zerocopy/tests/ui-stable/diagnostic-not-implemented-unaligned.rs +1 -3
  339. data/rust-vendor/zerocopy/tests/ui-stable/diagnostic-not-implemented-unaligned.stderr +5 -5
  340. data/rust-vendor/zerocopy/tests/ui-stable/include_value_not_from_bytes.rs +3 -5
  341. data/rust-vendor/zerocopy/tests/ui-stable/include_value_not_from_bytes.stderr +21 -21
  342. data/rust-vendor/zerocopy/tests/ui-stable/include_value_wrong_size.rs +1 -4
  343. data/rust-vendor/zerocopy/tests/ui-stable/include_value_wrong_size.stderr +8 -8
  344. data/rust-vendor/zerocopy/tests/ui-stable/invalid-impls/invalid-impls.rs +0 -1
  345. data/rust-vendor/zerocopy/tests/ui-stable/invalid-impls/invalid-impls.stderr +37 -37
  346. data/rust-vendor/zerocopy/tests/ui-stable/ptr-is-invariant-over-v.stderr +2 -2
  347. data/rust-vendor/zerocopy/tests/ui-stable/transmute-dst-not-frombytes.rs +1 -3
  348. data/rust-vendor/zerocopy/tests/ui-stable/transmute-dst-not-frombytes.stderr +15 -15
  349. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-const.rs +1 -3
  350. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-const.stderr +6 -6
  351. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-dst-not-a-reference.rs +0 -2
  352. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-dst-not-a-reference.stderr +2 -2
  353. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-dst-not-frombytes.rs +0 -2
  354. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-dst-not-frombytes.stderr +11 -11
  355. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-dst-not-intobytes.rs +0 -2
  356. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-dst-not-intobytes.stderr +4 -4
  357. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-dst-unsized.rs +0 -2
  358. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-dst-unsized.stderr +2 -2
  359. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-src-dst-not-references.rs +0 -2
  360. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-src-dst-not-references.stderr +3 -3
  361. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-src-immutable.rs +0 -2
  362. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-src-immutable.stderr +2 -2
  363. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-src-not-a-reference.rs +0 -2
  364. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-src-not-a-reference.stderr +3 -3
  365. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-src-not-frombytes.rs +0 -2
  366. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-src-not-frombytes.stderr +11 -11
  367. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-src-not-intobytes.rs +0 -2
  368. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-src-not-intobytes.stderr +4 -4
  369. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-src-unsized.rs +0 -2
  370. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-src-unsized.stderr +2 -2
  371. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ptr-to-usize.rs +0 -2
  372. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ptr-to-usize.stderr +9 -5
  373. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-dst-mutable.rs +0 -2
  374. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-dst-mutable.stderr +6 -6
  375. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-dst-not-a-reference.rs +0 -2
  376. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-dst-not-a-reference.stderr +6 -6
  377. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-dst-not-frombytes.rs +1 -3
  378. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-dst-not-frombytes.stderr +16 -16
  379. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-dst-not-nocell.rs +1 -3
  380. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-dst-not-nocell.stderr +14 -14
  381. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-dst-unsized.rs +0 -2
  382. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-dst-unsized.stderr +2 -2
  383. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-src-dst-not-references.rs +0 -2
  384. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-src-dst-not-references.stderr +9 -9
  385. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-src-not-a-reference.rs +0 -2
  386. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-src-not-a-reference.stderr +3 -3
  387. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-src-not-intobytes.rs +1 -3
  388. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-src-not-intobytes.stderr +18 -18
  389. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-src-not-nocell.rs +1 -3
  390. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-src-not-nocell.stderr +28 -28
  391. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-src-unsized.rs +0 -2
  392. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-src-unsized.stderr +2 -2
  393. data/rust-vendor/zerocopy/tests/ui-stable/transmute-size-decrease.rs +1 -3
  394. data/rust-vendor/zerocopy/tests/ui-stable/transmute-size-decrease.stderr +4 -4
  395. data/rust-vendor/zerocopy/tests/ui-stable/transmute-size-increase-allow-shrink.rs +1 -3
  396. data/rust-vendor/zerocopy/tests/ui-stable/transmute-size-increase-allow-shrink.stderr +4 -4
  397. data/rust-vendor/zerocopy/tests/ui-stable/transmute-size-increase.rs +1 -3
  398. data/rust-vendor/zerocopy/tests/ui-stable/transmute-size-increase.stderr +4 -4
  399. data/rust-vendor/zerocopy/tests/ui-stable/transmute-src-not-intobytes.rs +1 -3
  400. data/rust-vendor/zerocopy/tests/ui-stable/transmute-src-not-intobytes.stderr +8 -8
  401. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute-dst-not-tryfrombytes.rs +1 -3
  402. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute-dst-not-tryfrombytes.stderr +42 -42
  403. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute-size-decrease.rs +1 -3
  404. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute-size-decrease.stderr +2 -2
  405. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute-size-increase.rs +1 -3
  406. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute-size-increase.stderr +2 -2
  407. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute-src-not-intobytes.rs +1 -3
  408. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute-src-not-intobytes.stderr +7 -7
  409. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_mut-alignment-increase.rs +1 -3
  410. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_mut-alignment-increase.stderr +2 -2
  411. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_mut-dst-not-tryfrombytes.rs +1 -3
  412. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_mut-dst-not-tryfrombytes.stderr +49 -49
  413. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_mut-size-decrease.rs +1 -3
  414. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_mut-size-decrease.stderr +2 -2
  415. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_mut-size-increase.rs +1 -3
  416. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_mut-size-increase.stderr +4 -4
  417. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_mut-src-not-frombytes.rs +0 -2
  418. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_mut-src-not-frombytes.stderr +26 -26
  419. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_mut-src-not-intobytes.rs +0 -2
  420. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_mut-src-not-intobytes.stderr +19 -19
  421. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_ref-alignment-increase.rs +1 -3
  422. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_ref-alignment-increase.stderr +2 -2
  423. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_ref-dst-mutable.rs +0 -2
  424. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_ref-dst-mutable.stderr +6 -6
  425. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_ref-dst-not-immutable-tryfrombytes.rs +1 -3
  426. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_ref-dst-not-immutable-tryfrombytes.stderr +54 -54
  427. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_ref-size-decrease.rs +1 -3
  428. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_ref-size-decrease.stderr +2 -2
  429. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_ref-size-increase.rs +1 -3
  430. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_ref-size-increase.stderr +2 -2
  431. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_ref-src-not-immutable-intobytes.rs +1 -3
  432. data/rust-vendor/zerocopy/tests/ui-stable/try_transmute_ref-src-not-immutable-intobytes.stderr +19 -19
  433. data/rust-vendor/zerocopy-derive/.cargo-checksum.json +1 -1
  434. data/rust-vendor/zerocopy-derive/.cargo_vcs_info.json +1 -1
  435. data/rust-vendor/zerocopy-derive/Cargo.lock +3 -11
  436. data/rust-vendor/zerocopy-derive/Cargo.toml +13 -11
  437. data/rust-vendor/zerocopy-derive/Cargo.toml.orig +7 -10
  438. data/rust-vendor/zerocopy-derive/src/derive/from_bytes.rs +188 -0
  439. data/rust-vendor/zerocopy-derive/src/derive/into_bytes.rs +158 -0
  440. data/rust-vendor/zerocopy-derive/src/derive/known_layout.rs +348 -0
  441. data/rust-vendor/zerocopy-derive/src/derive/mod.rs +130 -0
  442. data/rust-vendor/zerocopy-derive/src/derive/try_from_bytes.rs +729 -0
  443. data/rust-vendor/zerocopy-derive/src/derive/unaligned.rs +78 -0
  444. data/rust-vendor/zerocopy-derive/src/lib.rs +31 -1893
  445. data/rust-vendor/zerocopy-derive/src/output_tests/expected/eq.expected.rs +17 -0
  446. data/rust-vendor/zerocopy-derive/src/output_tests/expected/from_bytes_enum.expected.rs +64 -0
  447. data/rust-vendor/zerocopy-derive/src/output_tests/expected/from_bytes_struct.expected.rs +64 -0
  448. data/rust-vendor/zerocopy-derive/src/output_tests/expected/from_bytes_union.expected.rs +144 -0
  449. data/rust-vendor/zerocopy-derive/src/output_tests/expected/from_zeros.expected.rs +39 -0
  450. data/rust-vendor/zerocopy-derive/src/output_tests/expected/hash.expected.rs +24 -0
  451. data/rust-vendor/zerocopy-derive/src/output_tests/expected/immutable.expected.rs +17 -0
  452. data/rust-vendor/zerocopy-derive/src/output_tests/expected/into_bytes_enum.expected.rs +17 -0
  453. data/rust-vendor/zerocopy-derive/src/output_tests/expected/into_bytes_struct_basic.expected.rs +25 -0
  454. data/rust-vendor/zerocopy-derive/src/output_tests/expected/into_bytes_struct_empty.expected.rs +17 -0
  455. data/rust-vendor/zerocopy-derive/src/output_tests/expected/into_bytes_struct_trailing.expected.rs +25 -0
  456. data/rust-vendor/zerocopy-derive/src/output_tests/expected/into_bytes_struct_trailing_generic.expected.rs +21 -0
  457. data/rust-vendor/zerocopy-derive/src/output_tests/expected/known_layout_repr_c_struct.expected.rs +135 -0
  458. data/rust-vendor/zerocopy-derive/src/output_tests/expected/known_layout_struct.expected.rs +34 -0
  459. data/rust-vendor/zerocopy-derive/src/output_tests/expected/split_at_repr_c.expected.rs +22 -0
  460. data/rust-vendor/zerocopy-derive/src/output_tests/expected/split_at_repr_transparent.expected.rs +22 -0
  461. data/rust-vendor/zerocopy-derive/src/output_tests/expected/try_from_bytes.expected.rs +22 -0
  462. data/rust-vendor/zerocopy-derive/src/output_tests/expected/try_from_bytes_enum_1.expected.rs +2802 -0
  463. data/rust-vendor/zerocopy-derive/src/output_tests/expected/try_from_bytes_enum_2.expected.rs +2802 -0
  464. data/rust-vendor/zerocopy-derive/src/output_tests/expected/try_from_bytes_enum_3.expected.rs +2802 -0
  465. data/rust-vendor/zerocopy-derive/src/output_tests/expected/try_from_bytes_trivial_is_bit_valid_enum.expected.rs +22 -0
  466. data/rust-vendor/zerocopy-derive/src/output_tests/expected/unaligned.expected.rs +17 -0
  467. data/rust-vendor/zerocopy-derive/src/output_tests/mod.rs +960 -0
  468. data/rust-vendor/zerocopy-derive/src/util.rs +757 -0
  469. data/rust-vendor/zerocopy-derive/tests/deprecated.rs +6 -0
  470. data/rust-vendor/zerocopy-derive/tests/enum_from_zeros.rs +9 -0
  471. data/rust-vendor/zerocopy-derive/tests/enum_known_layout.rs +4 -0
  472. data/rust-vendor/zerocopy-derive/tests/enum_no_cell.rs +4 -0
  473. data/rust-vendor/zerocopy-derive/tests/enum_to_bytes.rs +14 -0
  474. data/rust-vendor/zerocopy-derive/tests/enum_try_from_bytes.rs +37 -15
  475. data/rust-vendor/zerocopy-derive/tests/enum_unaligned.rs +4 -0
  476. data/rust-vendor/zerocopy-derive/tests/eq.rs +1 -0
  477. data/rust-vendor/zerocopy-derive/tests/hash.rs +1 -0
  478. data/rust-vendor/zerocopy-derive/tests/hygiene.rs +3 -1
  479. data/rust-vendor/zerocopy-derive/tests/include.rs +26 -4
  480. data/rust-vendor/zerocopy-derive/tests/issue_2117.rs +1 -0
  481. data/rust-vendor/zerocopy-derive/tests/issue_2835.rs +2 -1
  482. data/rust-vendor/zerocopy-derive/tests/issue_2880.rs +292 -0
  483. data/rust-vendor/zerocopy-derive/tests/issue_2915.rs +78 -0
  484. data/rust-vendor/zerocopy-derive/tests/paths_and_modules.rs +3 -0
  485. data/rust-vendor/zerocopy-derive/tests/priv_in_pub.rs +2 -0
  486. data/rust-vendor/zerocopy-derive/tests/struct_from_bytes.rs +6 -0
  487. data/rust-vendor/zerocopy-derive/tests/struct_from_zeros.rs +6 -0
  488. data/rust-vendor/zerocopy-derive/tests/struct_known_layout.rs +9 -0
  489. data/rust-vendor/zerocopy-derive/tests/struct_no_cell.rs +8 -0
  490. data/rust-vendor/zerocopy-derive/tests/struct_to_bytes.rs +17 -0
  491. data/rust-vendor/zerocopy-derive/tests/struct_try_from_bytes.rs +29 -65
  492. data/rust-vendor/zerocopy-derive/tests/struct_unaligned.rs +7 -0
  493. data/rust-vendor/zerocopy-derive/tests/ui-msrv/derive_transparent.rs +3 -2
  494. data/rust-vendor/zerocopy-derive/tests/ui-msrv/derive_transparent.stderr +32 -32
  495. data/rust-vendor/zerocopy-derive/tests/ui-msrv/enum.rs +48 -1
  496. data/rust-vendor/zerocopy-derive/tests/ui-msrv/enum.stderr +129 -126
  497. data/rust-vendor/zerocopy-derive/tests/ui-msrv/enum_from_bytes_u8_too_few.rs +2 -1
  498. data/rust-vendor/zerocopy-derive/tests/ui-msrv/enum_from_bytes_u8_too_few.stderr +6 -6
  499. data/rust-vendor/zerocopy-derive/tests/ui-msrv/late_compile_pass.rs +9 -2
  500. data/rust-vendor/zerocopy-derive/tests/ui-msrv/late_compile_pass.stderr +37 -37
  501. data/rust-vendor/zerocopy-derive/tests/ui-msrv/mid_compile_pass.rs +6 -2
  502. data/rust-vendor/zerocopy-derive/tests/ui-msrv/mid_compile_pass.stderr +26 -26
  503. data/rust-vendor/zerocopy-derive/tests/ui-msrv/msrv_specific.rs +3 -2
  504. data/rust-vendor/zerocopy-derive/tests/ui-msrv/msrv_specific.stderr +7 -7
  505. data/rust-vendor/zerocopy-derive/tests/ui-msrv/privacy.rs +66 -29
  506. data/rust-vendor/zerocopy-derive/tests/ui-msrv/privacy.stderr +78 -78
  507. data/rust-vendor/zerocopy-derive/tests/ui-msrv/struct.rs +34 -2
  508. data/rust-vendor/zerocopy-derive/tests/ui-msrv/struct.stderr +79 -79
  509. data/rust-vendor/zerocopy-derive/tests/ui-msrv/union.rs +12 -1
  510. data/rust-vendor/zerocopy-derive/tests/ui-msrv/union.stderr +29 -29
  511. data/rust-vendor/zerocopy-derive/tests/ui-msrv/union_into_bytes_cfg/union_into_bytes_cfg.rs +3 -2
  512. data/rust-vendor/zerocopy-derive/tests/ui-nightly/absence_of_deprecated_warning.rs +3 -2
  513. data/rust-vendor/zerocopy-derive/tests/ui-nightly/absence_of_deprecated_warning.stderr +2 -2
  514. data/rust-vendor/zerocopy-derive/tests/ui-nightly/derive_transparent.rs +3 -2
  515. data/rust-vendor/zerocopy-derive/tests/ui-nightly/derive_transparent.stderr +57 -57
  516. data/rust-vendor/zerocopy-derive/tests/ui-nightly/enum.rs +48 -1
  517. data/rust-vendor/zerocopy-derive/tests/ui-nightly/enum.stderr +200 -192
  518. data/rust-vendor/zerocopy-derive/tests/ui-nightly/enum_from_bytes_u8_too_few.rs +2 -1
  519. data/rust-vendor/zerocopy-derive/tests/ui-nightly/enum_from_bytes_u8_too_few.stderr +6 -6
  520. data/rust-vendor/zerocopy-derive/tests/ui-nightly/late_compile_pass.rs +9 -2
  521. data/rust-vendor/zerocopy-derive/tests/ui-nightly/late_compile_pass.stderr +105 -105
  522. data/rust-vendor/zerocopy-derive/tests/ui-nightly/mid_compile_pass.rs +6 -2
  523. data/rust-vendor/zerocopy-derive/tests/ui-nightly/mid_compile_pass.stderr +29 -29
  524. data/rust-vendor/zerocopy-derive/tests/ui-nightly/privacy.rs +66 -29
  525. data/rust-vendor/zerocopy-derive/tests/ui-nightly/privacy.stderr +15 -15
  526. data/rust-vendor/zerocopy-derive/tests/ui-nightly/struct.rs +34 -2
  527. data/rust-vendor/zerocopy-derive/tests/ui-nightly/struct.stderr +130 -129
  528. data/rust-vendor/zerocopy-derive/tests/ui-nightly/union.rs +12 -1
  529. data/rust-vendor/zerocopy-derive/tests/ui-nightly/union.stderr +42 -42
  530. data/rust-vendor/zerocopy-derive/tests/ui-nightly/union_into_bytes_cfg/union_into_bytes_cfg.rs +3 -2
  531. data/rust-vendor/zerocopy-derive/tests/ui-stable/derive_transparent.rs +3 -2
  532. data/rust-vendor/zerocopy-derive/tests/ui-stable/derive_transparent.stderr +57 -57
  533. data/rust-vendor/zerocopy-derive/tests/ui-stable/enum.rs +48 -1
  534. data/rust-vendor/zerocopy-derive/tests/ui-stable/enum.stderr +201 -186
  535. data/rust-vendor/zerocopy-derive/tests/ui-stable/enum_from_bytes_u8_too_few.rs +2 -1
  536. data/rust-vendor/zerocopy-derive/tests/ui-stable/enum_from_bytes_u8_too_few.stderr +6 -6
  537. data/rust-vendor/zerocopy-derive/tests/ui-stable/late_compile_pass.rs +9 -2
  538. data/rust-vendor/zerocopy-derive/tests/ui-stable/late_compile_pass.stderr +105 -105
  539. data/rust-vendor/zerocopy-derive/tests/ui-stable/mid_compile_pass.rs +6 -2
  540. data/rust-vendor/zerocopy-derive/tests/ui-stable/mid_compile_pass.stderr +29 -29
  541. data/rust-vendor/zerocopy-derive/tests/ui-stable/privacy.rs +66 -29
  542. data/rust-vendor/zerocopy-derive/tests/ui-stable/privacy.stderr +15 -15
  543. data/rust-vendor/zerocopy-derive/tests/ui-stable/struct.rs +34 -2
  544. data/rust-vendor/zerocopy-derive/tests/ui-stable/struct.stderr +158 -129
  545. data/rust-vendor/zerocopy-derive/tests/ui-stable/union.rs +12 -1
  546. data/rust-vendor/zerocopy-derive/tests/ui-stable/union.stderr +48 -44
  547. data/rust-vendor/zerocopy-derive/tests/ui-stable/union_into_bytes_cfg/union_into_bytes_cfg.rs +3 -2
  548. data/rust-vendor/zerocopy-derive/tests/union_from_bytes.rs +15 -0
  549. data/rust-vendor/zerocopy-derive/tests/union_from_zeros.rs +14 -0
  550. data/rust-vendor/zerocopy-derive/tests/union_known_layout.rs +5 -0
  551. data/rust-vendor/zerocopy-derive/tests/union_no_cell.rs +5 -0
  552. data/rust-vendor/zerocopy-derive/tests/union_to_bytes.rs +5 -0
  553. data/rust-vendor/zerocopy-derive/tests/union_try_from_bytes.rs +34 -74
  554. data/rust-vendor/zerocopy-derive/tests/union_unaligned.rs +4 -1
  555. data/rust-vendor/zerocopy-derive/tests/unsafe_cell.rs +3 -0
  556. data/rust-vendor/zmij/.cargo-checksum.json +1 -1
  557. data/rust-vendor/zmij/.cargo_vcs_info.json +1 -1
  558. data/rust-vendor/zmij/Cargo.lock +10 -10
  559. data/rust-vendor/zmij/Cargo.toml +1 -1
  560. data/rust-vendor/zmij/Cargo.toml.orig +1 -1
  561. data/rust-vendor/zmij/README.md +1 -1
  562. data/rust-vendor/zmij/src/lib.rs +132 -158
  563. data/rust-vendor/zune-jpeg/.cargo-checksum.json +1 -1
  564. data/rust-vendor/zune-jpeg/.cargo_vcs_info.json +1 -1
  565. data/rust-vendor/zune-jpeg/Cargo.lock +1 -1
  566. data/rust-vendor/zune-jpeg/Cargo.toml +1 -1
  567. data/rust-vendor/zune-jpeg/Cargo.toml.orig +1 -1
  568. data/rust-vendor/zune-jpeg/src/bitstream.rs +1 -1
  569. data/rust-vendor/zune-jpeg/src/components.rs +2 -1
  570. data/rust-vendor/zune-jpeg/src/decoder.rs +3 -23
  571. data/rust-vendor/zune-jpeg/src/headers.rs +19 -1
  572. data/rust-vendor/zune-jpeg/src/lib.rs +1 -0
  573. data/rust-vendor/zune-jpeg/src/mcu.rs +6 -6
  574. data/rust-vendor/zune-jpeg/src/mcu_prog.rs +22 -34
  575. data/rust-vendor/zune-jpeg/src/upsampler/avx2.rs +3 -1
  576. data/rust-vendor/zune-jpeg/src/upsampler/neon.rs +13 -23
  577. data/rust-vendor/zune-jpeg/src/upsampler/portable_simd.rs +4 -1
  578. data/rust-vendor/zune-jpeg/src/upsampler/scalar.rs +4 -1
  579. metadata +41 -8
  580. data/rust-vendor/zerocopy/tests/ui-stable/transmute-mut-src-dst-unsized.stderr +0 -183
  581. data/rust-vendor/zerocopy/tests/ui-stable/transmute-ref-src-dst-unsized.stderr +0 -183
  582. data/rust-vendor/zerocopy-derive/src/enum.rs +0 -456
  583. data/rust-vendor/zerocopy-derive/src/ext.rs +0 -123
  584. data/rust-vendor/zerocopy-derive/src/output_tests.rs +0 -5608
  585. data/rust-vendor/zerocopy-derive/tests/crate_path.rs +0 -189
@@ -0,0 +1,960 @@
1
+ // Copyright 2024 The Fuchsia Authors
2
+ //
3
+ // Licensed under a BSD-style license <LICENSE-BSD>, Apache License, Version 2.0
4
+ // <LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0>, or the MIT
5
+ // license <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your option.
6
+ // This file may not be copied, modified, or distributed except according to
7
+ // those terms.
8
+
9
+ use std::path::Path;
10
+
11
+ use dissimilar::Chunk;
12
+ use proc_macro2::TokenStream;
13
+
14
+ use crate::IntoTokenStream;
15
+
16
+ macro_rules! use_as_trait_name {
17
+ ($($alias:ident => $derive:path),* $(,)?) => {
18
+ $(use $derive as $alias;)*
19
+ };
20
+ }
21
+
22
+ // This permits invocations of `test!` to be more ergonomic, passing the name of
23
+ // the trait under test rather than the name of the inner derive function.
24
+ use_as_trait_name!(
25
+ KnownLayout => super::derive::known_layout::derive,
26
+ Immutable => super::derive::derive_immutable,
27
+ TryFromBytes => super::derive::try_from_bytes::derive_try_from_bytes,
28
+ FromZeros => super::derive::from_bytes::derive_from_zeros,
29
+ FromBytes => super::derive::from_bytes::derive_from_bytes,
30
+ IntoBytes => super::derive::into_bytes::derive_into_bytes,
31
+ Unaligned => super::derive::unaligned::derive_unaligned,
32
+ ByteHash => super::derive::derive_hash,
33
+ ByteEq => super::derive::derive_eq,
34
+ SplitAt => super::derive::derive_split_at,
35
+ );
36
+
37
+ /// Test that the given derive input expands to the expected output.
38
+ ///
39
+ /// Equality is tested by formatting both token streams using `prettyplease` and
40
+ /// performing string equality on the results. This has the effect of making the
41
+ /// tests less brittle and robust against meaningless formatting changes.
42
+ // Adapted from https://github.com/joshlf/synstructure/blob/400499aaf54840056ff56718beb7810540e6be59/src/macros.rs#L212-L317
43
+ macro_rules! test {
44
+ ($name:ident { $($i:tt)* } expands to { $($o:tt)* }) => {
45
+ {
46
+ #[allow(dead_code)]
47
+ fn ensure_compiles() {
48
+ $($i)*
49
+ $($o)*
50
+ }
51
+
52
+ test!($name { $($i)* } expands to { $($o)* } no_build);
53
+ }
54
+ };
55
+
56
+ ($name:ident { $($i:tt)* } expands to { $($o:tt)* } no_build) => {
57
+ {
58
+ let ts: proc_macro2::TokenStream = quote::quote!( $($i)* );
59
+ let ast = syn::parse2::<syn::DeriveInput>(ts).unwrap();
60
+ let ctx = crate::Ctx::try_from_derive_input(ast).unwrap();
61
+ let res = $name(&ctx, crate::util::Trait::$name);
62
+ let expected_toks = quote::quote!( $($o)* );
63
+ let expected = pretty_print(expected_toks);
64
+ let actual = pretty_print(res.into_ts().into());
65
+ assert_eq_or_diff(&expected, &actual);
66
+ }
67
+ };
68
+
69
+ ($name:ident { $($i:tt)* } expands to $path:literal) => {
70
+ test!($name { $($i)* } expands to $path no_build);
71
+ };
72
+
73
+ ($name:ident { $($i:tt)* } expands to $path:literal no_build) => {
74
+ {
75
+ let ts: proc_macro2::TokenStream = quote::quote!( $($i)* );
76
+ let ast = syn::parse2::<syn::DeriveInput>(ts).unwrap();
77
+ let ctx = crate::Ctx::try_from_derive_input(ast).unwrap();
78
+ let res = $name(&ctx, crate::util::Trait::$name);
79
+ let actual = pretty_print(res.into_ts().into());
80
+
81
+ if std::env::var("ZEROCOPY_BLESS").is_ok() {
82
+ let path = Path::new(env!("CARGO_MANIFEST_DIR"))
83
+ .join("src/output_tests")
84
+ .join($path);
85
+ std::fs::write(&path, &actual).expect("failed to bless output");
86
+ } else {
87
+ let expected_str = include_str!($path);
88
+ let expected_ts: proc_macro2::TokenStream = expected_str.parse().expect("failed to parse expected output");
89
+ let expected = pretty_print(expected_ts);
90
+ assert_eq_or_diff(&expected, &actual);
91
+ }
92
+ }
93
+ };
94
+ }
95
+
96
+ fn pretty_print(ts: TokenStream) -> String {
97
+ prettyplease::unparse(&syn::parse_file(&ts.to_string()).unwrap())
98
+ }
99
+
100
+ #[track_caller]
101
+ fn assert_eq_or_diff(expected: &str, actual: &str) {
102
+ if expected != actual {
103
+ let diff = dissimilar::diff(expected, actual)
104
+ .into_iter()
105
+ .flat_map(|chunk| {
106
+ let (prefix, chunk) = match chunk {
107
+ Chunk::Equal(chunk) => (" ", chunk),
108
+ Chunk::Delete(chunk) => ("-", chunk),
109
+ Chunk::Insert(chunk) => ("+", chunk),
110
+ };
111
+ [prefix, chunk, "\n"]
112
+ })
113
+ .collect::<String>();
114
+
115
+ panic!(
116
+ "\
117
+ test failed:
118
+ got:
119
+ ```
120
+ {}
121
+ ```
122
+
123
+ diff (expected vs got):
124
+ ```
125
+ {}
126
+ ```\n",
127
+ actual, diff
128
+ );
129
+ }
130
+ }
131
+
132
+ #[test]
133
+ fn test_known_layout_struct() {
134
+ test! {
135
+ KnownLayout {
136
+ struct Foo;
137
+ } expands to "expected/known_layout_struct.expected.rs"
138
+ }
139
+ }
140
+
141
+ #[test]
142
+ fn test_known_layout_repr_c_struct() {
143
+ test! {
144
+ KnownLayout {
145
+ #[repr(C, align(2))]
146
+ struct Foo<T, U>(T, U);
147
+ }
148
+ expands to "expected/known_layout_repr_c_struct.expected.rs"
149
+ }
150
+ }
151
+
152
+ #[test]
153
+ fn test_immutable() {
154
+ test! {
155
+ Immutable {
156
+ struct Foo;
157
+ } expands to "expected/immutable.expected.rs"
158
+ }
159
+ }
160
+
161
+ #[test]
162
+ fn test_try_from_bytes() {
163
+ test! {
164
+ TryFromBytes {
165
+ struct Foo;
166
+ } expands to "expected/try_from_bytes.expected.rs"
167
+ }
168
+ }
169
+
170
+ #[test]
171
+ fn test_from_zeros() {
172
+ test! {
173
+ FromZeros {
174
+ struct Foo;
175
+ } expands to "expected/from_zeros.expected.rs"
176
+ }
177
+ }
178
+
179
+ #[test]
180
+ fn test_from_bytes_struct() {
181
+ test! {
182
+ FromBytes {
183
+ struct Foo;
184
+ } expands to "expected/from_bytes_struct.expected.rs"
185
+ }
186
+ }
187
+
188
+ #[test]
189
+ fn test_from_bytes_union() {
190
+ test! {
191
+ FromBytes {
192
+ union Foo {
193
+ a: u8,
194
+ }
195
+ } expands to "expected/from_bytes_union.expected.rs"
196
+ }
197
+ }
198
+
199
+ #[test]
200
+ fn test_into_bytes_struct_empty() {
201
+ test! {
202
+ IntoBytes {
203
+ #[repr(C)]
204
+ struct Foo;
205
+ } expands to "expected/into_bytes_struct_empty.expected.rs"
206
+ }
207
+ }
208
+
209
+ #[test]
210
+ fn test_into_bytes_struct_basic() {
211
+ test! {
212
+ IntoBytes {
213
+ #[repr(C)]
214
+ struct Foo {
215
+ a: u8,
216
+ b: u8,
217
+ }
218
+ } expands to "expected/into_bytes_struct_basic.expected.rs"
219
+ }
220
+ }
221
+
222
+ #[test]
223
+ fn test_into_bytes_struct_trailing() {
224
+ test! {
225
+ IntoBytes {
226
+ #[repr(C)]
227
+ struct Foo {
228
+ a: u8,
229
+ b: [Trailing],
230
+ }
231
+ } expands to "expected/into_bytes_struct_trailing.expected.rs"
232
+ }
233
+ }
234
+
235
+ #[test]
236
+ fn test_into_bytes_struct_trailing_generic() {
237
+ test! {
238
+ IntoBytes {
239
+ #[repr(C)]
240
+ struct Foo<Trailing> {
241
+ a: u8,
242
+ b: [Trailing],
243
+ }
244
+ } expands to "expected/into_bytes_struct_trailing_generic.expected.rs"
245
+ }
246
+ }
247
+
248
+ #[test]
249
+ fn test_into_bytes_enum() {
250
+ macro_rules! test_repr {
251
+ ($(#[$attr:meta])*) => {
252
+ $(test! {
253
+ IntoBytes {
254
+ #[$attr]
255
+ enum Foo {
256
+ Bar,
257
+ }
258
+ } expands to "expected/into_bytes_enum.expected.rs"
259
+ })*
260
+ };
261
+ }
262
+
263
+ test_repr! {
264
+ #[repr(C)]
265
+ #[repr(u8)]
266
+ #[repr(u16)]
267
+ #[repr(u32)]
268
+ #[repr(u64)]
269
+ #[repr(u128)]
270
+ #[repr(usize)]
271
+ #[repr(i8)]
272
+ #[repr(i16)]
273
+ #[repr(i32)]
274
+ #[repr(i64)]
275
+ #[repr(i128)]
276
+ #[repr(isize)]
277
+ }
278
+ }
279
+
280
+ #[test]
281
+ fn test_unaligned() {
282
+ test! {
283
+ Unaligned {
284
+ #[repr(C)]
285
+ struct Foo;
286
+ } expands to "expected/unaligned.expected.rs"
287
+ }
288
+ }
289
+
290
+ #[test]
291
+ fn test_try_from_bytes_enum() {
292
+ test! {
293
+ TryFromBytes {
294
+ #[repr(u8)]
295
+ enum ComplexWithGenerics<'a: 'static, const N: usize, X, Y: Deref>
296
+ where
297
+ X: Deref<Target = &'a [(X, Y); N]>,
298
+ {
299
+ UnitLike,
300
+ StructLike { a: u8, b: X, c: X::Target, d: Y::Target, e: [(X, Y); N] },
301
+ TupleLike(bool, Y, PhantomData<&'a [(X, Y); N]>),
302
+ }
303
+ } expands to "expected/try_from_bytes_enum_1.expected.rs"
304
+ }
305
+
306
+ test! {
307
+ TryFromBytes {
308
+ #[repr(u32)]
309
+ enum ComplexWithGenerics<'a: 'static, const N: usize, X, Y: Deref>
310
+ where
311
+ X: Deref<Target = &'a [(X, Y); N]>,
312
+ {
313
+ UnitLike,
314
+ StructLike { a: u8, b: X, c: X::Target, d: Y::Target, e: [(X, Y); N] },
315
+ TupleLike(bool, Y, PhantomData<&'a [(X, Y); N]>),
316
+ }
317
+ } expands to "expected/try_from_bytes_enum_2.expected.rs"
318
+ }
319
+
320
+ test! {
321
+ TryFromBytes {
322
+ #[repr(C)]
323
+ enum ComplexWithGenerics<'a: 'static, const N: usize, X, Y: Deref>
324
+ where
325
+ X: Deref<Target = &'a [(X, Y); N]>,
326
+ {
327
+ UnitLike,
328
+ StructLike { a: u8, b: X, c: X::Target, d: Y::Target, e: [(X, Y); N] },
329
+ TupleLike(bool, Y, PhantomData<&'a [(X, Y); N]>),
330
+ }
331
+ } expands to "expected/try_from_bytes_enum_3.expected.rs"
332
+ }
333
+ }
334
+
335
+ // This goes at the bottom because it's so verbose and it makes scrolling past
336
+ // other code a pain.
337
+ #[test]
338
+ fn test_from_bytes_enum() {
339
+ test! {
340
+ FromBytes {
341
+ #[repr(u8)]
342
+ enum Foo {
343
+ Variant0,
344
+ Variant1,
345
+ Variant2,
346
+ Variant3,
347
+ Variant4,
348
+ Variant5,
349
+ Variant6,
350
+ Variant7,
351
+ Variant8,
352
+ Variant9,
353
+ Variant10,
354
+ Variant11,
355
+ Variant12,
356
+ Variant13,
357
+ Variant14,
358
+ Variant15,
359
+ Variant16,
360
+ Variant17,
361
+ Variant18,
362
+ Variant19,
363
+ Variant20,
364
+ Variant21,
365
+ Variant22,
366
+ Variant23,
367
+ Variant24,
368
+ Variant25,
369
+ Variant26,
370
+ Variant27,
371
+ Variant28,
372
+ Variant29,
373
+ Variant30,
374
+ Variant31,
375
+ Variant32,
376
+ Variant33,
377
+ Variant34,
378
+ Variant35,
379
+ Variant36,
380
+ Variant37,
381
+ Variant38,
382
+ Variant39,
383
+ Variant40,
384
+ Variant41,
385
+ Variant42,
386
+ Variant43,
387
+ Variant44,
388
+ Variant45,
389
+ Variant46,
390
+ Variant47,
391
+ Variant48,
392
+ Variant49,
393
+ Variant50,
394
+ Variant51,
395
+ Variant52,
396
+ Variant53,
397
+ Variant54,
398
+ Variant55,
399
+ Variant56,
400
+ Variant57,
401
+ Variant58,
402
+ Variant59,
403
+ Variant60,
404
+ Variant61,
405
+ Variant62,
406
+ Variant63,
407
+ Variant64,
408
+ Variant65,
409
+ Variant66,
410
+ Variant67,
411
+ Variant68,
412
+ Variant69,
413
+ Variant70,
414
+ Variant71,
415
+ Variant72,
416
+ Variant73,
417
+ Variant74,
418
+ Variant75,
419
+ Variant76,
420
+ Variant77,
421
+ Variant78,
422
+ Variant79,
423
+ Variant80,
424
+ Variant81,
425
+ Variant82,
426
+ Variant83,
427
+ Variant84,
428
+ Variant85,
429
+ Variant86,
430
+ Variant87,
431
+ Variant88,
432
+ Variant89,
433
+ Variant90,
434
+ Variant91,
435
+ Variant92,
436
+ Variant93,
437
+ Variant94,
438
+ Variant95,
439
+ Variant96,
440
+ Variant97,
441
+ Variant98,
442
+ Variant99,
443
+ Variant100,
444
+ Variant101,
445
+ Variant102,
446
+ Variant103,
447
+ Variant104,
448
+ Variant105,
449
+ Variant106,
450
+ Variant107,
451
+ Variant108,
452
+ Variant109,
453
+ Variant110,
454
+ Variant111,
455
+ Variant112,
456
+ Variant113,
457
+ Variant114,
458
+ Variant115,
459
+ Variant116,
460
+ Variant117,
461
+ Variant118,
462
+ Variant119,
463
+ Variant120,
464
+ Variant121,
465
+ Variant122,
466
+ Variant123,
467
+ Variant124,
468
+ Variant125,
469
+ Variant126,
470
+ Variant127,
471
+ Variant128,
472
+ Variant129,
473
+ Variant130,
474
+ Variant131,
475
+ Variant132,
476
+ Variant133,
477
+ Variant134,
478
+ Variant135,
479
+ Variant136,
480
+ Variant137,
481
+ Variant138,
482
+ Variant139,
483
+ Variant140,
484
+ Variant141,
485
+ Variant142,
486
+ Variant143,
487
+ Variant144,
488
+ Variant145,
489
+ Variant146,
490
+ Variant147,
491
+ Variant148,
492
+ Variant149,
493
+ Variant150,
494
+ Variant151,
495
+ Variant152,
496
+ Variant153,
497
+ Variant154,
498
+ Variant155,
499
+ Variant156,
500
+ Variant157,
501
+ Variant158,
502
+ Variant159,
503
+ Variant160,
504
+ Variant161,
505
+ Variant162,
506
+ Variant163,
507
+ Variant164,
508
+ Variant165,
509
+ Variant166,
510
+ Variant167,
511
+ Variant168,
512
+ Variant169,
513
+ Variant170,
514
+ Variant171,
515
+ Variant172,
516
+ Variant173,
517
+ Variant174,
518
+ Variant175,
519
+ Variant176,
520
+ Variant177,
521
+ Variant178,
522
+ Variant179,
523
+ Variant180,
524
+ Variant181,
525
+ Variant182,
526
+ Variant183,
527
+ Variant184,
528
+ Variant185,
529
+ Variant186,
530
+ Variant187,
531
+ Variant188,
532
+ Variant189,
533
+ Variant190,
534
+ Variant191,
535
+ Variant192,
536
+ Variant193,
537
+ Variant194,
538
+ Variant195,
539
+ Variant196,
540
+ Variant197,
541
+ Variant198,
542
+ Variant199,
543
+ Variant200,
544
+ Variant201,
545
+ Variant202,
546
+ Variant203,
547
+ Variant204,
548
+ Variant205,
549
+ Variant206,
550
+ Variant207,
551
+ Variant208,
552
+ Variant209,
553
+ Variant210,
554
+ Variant211,
555
+ Variant212,
556
+ Variant213,
557
+ Variant214,
558
+ Variant215,
559
+ Variant216,
560
+ Variant217,
561
+ Variant218,
562
+ Variant219,
563
+ Variant220,
564
+ Variant221,
565
+ Variant222,
566
+ Variant223,
567
+ Variant224,
568
+ Variant225,
569
+ Variant226,
570
+ Variant227,
571
+ Variant228,
572
+ Variant229,
573
+ Variant230,
574
+ Variant231,
575
+ Variant232,
576
+ Variant233,
577
+ Variant234,
578
+ Variant235,
579
+ Variant236,
580
+ Variant237,
581
+ Variant238,
582
+ Variant239,
583
+ Variant240,
584
+ Variant241,
585
+ Variant242,
586
+ Variant243,
587
+ Variant244,
588
+ Variant245,
589
+ Variant246,
590
+ Variant247,
591
+ Variant248,
592
+ Variant249,
593
+ Variant250,
594
+ Variant251,
595
+ Variant252,
596
+ Variant253,
597
+ Variant254,
598
+ Variant255,
599
+ }
600
+ } expands to "expected/from_bytes_enum.expected.rs"
601
+ }
602
+ }
603
+
604
+ #[test]
605
+ fn test_try_from_bytes_trivial_is_bit_valid_enum() {
606
+ // Even when we aren't deriving `FromBytes` as the top-level trait,
607
+ // `TryFromBytes` on enums still detects whether we *could* derive
608
+ // `FromBytes`, and if so, performs the same "trivial `is_bit_valid`"
609
+ // optimization.
610
+ test! {
611
+ TryFromBytes {
612
+ #[repr(u8)]
613
+ enum Foo {
614
+ Variant0,
615
+ Variant1,
616
+ Variant2,
617
+ Variant3,
618
+ Variant4,
619
+ Variant5,
620
+ Variant6,
621
+ Variant7,
622
+ Variant8,
623
+ Variant9,
624
+ Variant10,
625
+ Variant11,
626
+ Variant12,
627
+ Variant13,
628
+ Variant14,
629
+ Variant15,
630
+ Variant16,
631
+ Variant17,
632
+ Variant18,
633
+ Variant19,
634
+ Variant20,
635
+ Variant21,
636
+ Variant22,
637
+ Variant23,
638
+ Variant24,
639
+ Variant25,
640
+ Variant26,
641
+ Variant27,
642
+ Variant28,
643
+ Variant29,
644
+ Variant30,
645
+ Variant31,
646
+ Variant32,
647
+ Variant33,
648
+ Variant34,
649
+ Variant35,
650
+ Variant36,
651
+ Variant37,
652
+ Variant38,
653
+ Variant39,
654
+ Variant40,
655
+ Variant41,
656
+ Variant42,
657
+ Variant43,
658
+ Variant44,
659
+ Variant45,
660
+ Variant46,
661
+ Variant47,
662
+ Variant48,
663
+ Variant49,
664
+ Variant50,
665
+ Variant51,
666
+ Variant52,
667
+ Variant53,
668
+ Variant54,
669
+ Variant55,
670
+ Variant56,
671
+ Variant57,
672
+ Variant58,
673
+ Variant59,
674
+ Variant60,
675
+ Variant61,
676
+ Variant62,
677
+ Variant63,
678
+ Variant64,
679
+ Variant65,
680
+ Variant66,
681
+ Variant67,
682
+ Variant68,
683
+ Variant69,
684
+ Variant70,
685
+ Variant71,
686
+ Variant72,
687
+ Variant73,
688
+ Variant74,
689
+ Variant75,
690
+ Variant76,
691
+ Variant77,
692
+ Variant78,
693
+ Variant79,
694
+ Variant80,
695
+ Variant81,
696
+ Variant82,
697
+ Variant83,
698
+ Variant84,
699
+ Variant85,
700
+ Variant86,
701
+ Variant87,
702
+ Variant88,
703
+ Variant89,
704
+ Variant90,
705
+ Variant91,
706
+ Variant92,
707
+ Variant93,
708
+ Variant94,
709
+ Variant95,
710
+ Variant96,
711
+ Variant97,
712
+ Variant98,
713
+ Variant99,
714
+ Variant100,
715
+ Variant101,
716
+ Variant102,
717
+ Variant103,
718
+ Variant104,
719
+ Variant105,
720
+ Variant106,
721
+ Variant107,
722
+ Variant108,
723
+ Variant109,
724
+ Variant110,
725
+ Variant111,
726
+ Variant112,
727
+ Variant113,
728
+ Variant114,
729
+ Variant115,
730
+ Variant116,
731
+ Variant117,
732
+ Variant118,
733
+ Variant119,
734
+ Variant120,
735
+ Variant121,
736
+ Variant122,
737
+ Variant123,
738
+ Variant124,
739
+ Variant125,
740
+ Variant126,
741
+ Variant127,
742
+ Variant128,
743
+ Variant129,
744
+ Variant130,
745
+ Variant131,
746
+ Variant132,
747
+ Variant133,
748
+ Variant134,
749
+ Variant135,
750
+ Variant136,
751
+ Variant137,
752
+ Variant138,
753
+ Variant139,
754
+ Variant140,
755
+ Variant141,
756
+ Variant142,
757
+ Variant143,
758
+ Variant144,
759
+ Variant145,
760
+ Variant146,
761
+ Variant147,
762
+ Variant148,
763
+ Variant149,
764
+ Variant150,
765
+ Variant151,
766
+ Variant152,
767
+ Variant153,
768
+ Variant154,
769
+ Variant155,
770
+ Variant156,
771
+ Variant157,
772
+ Variant158,
773
+ Variant159,
774
+ Variant160,
775
+ Variant161,
776
+ Variant162,
777
+ Variant163,
778
+ Variant164,
779
+ Variant165,
780
+ Variant166,
781
+ Variant167,
782
+ Variant168,
783
+ Variant169,
784
+ Variant170,
785
+ Variant171,
786
+ Variant172,
787
+ Variant173,
788
+ Variant174,
789
+ Variant175,
790
+ Variant176,
791
+ Variant177,
792
+ Variant178,
793
+ Variant179,
794
+ Variant180,
795
+ Variant181,
796
+ Variant182,
797
+ Variant183,
798
+ Variant184,
799
+ Variant185,
800
+ Variant186,
801
+ Variant187,
802
+ Variant188,
803
+ Variant189,
804
+ Variant190,
805
+ Variant191,
806
+ Variant192,
807
+ Variant193,
808
+ Variant194,
809
+ Variant195,
810
+ Variant196,
811
+ Variant197,
812
+ Variant198,
813
+ Variant199,
814
+ Variant200,
815
+ Variant201,
816
+ Variant202,
817
+ Variant203,
818
+ Variant204,
819
+ Variant205,
820
+ Variant206,
821
+ Variant207,
822
+ Variant208,
823
+ Variant209,
824
+ Variant210,
825
+ Variant211,
826
+ Variant212,
827
+ Variant213,
828
+ Variant214,
829
+ Variant215,
830
+ Variant216,
831
+ Variant217,
832
+ Variant218,
833
+ Variant219,
834
+ Variant220,
835
+ Variant221,
836
+ Variant222,
837
+ Variant223,
838
+ Variant224,
839
+ Variant225,
840
+ Variant226,
841
+ Variant227,
842
+ Variant228,
843
+ Variant229,
844
+ Variant230,
845
+ Variant231,
846
+ Variant232,
847
+ Variant233,
848
+ Variant234,
849
+ Variant235,
850
+ Variant236,
851
+ Variant237,
852
+ Variant238,
853
+ Variant239,
854
+ Variant240,
855
+ Variant241,
856
+ Variant242,
857
+ Variant243,
858
+ Variant244,
859
+ Variant245,
860
+ Variant246,
861
+ Variant247,
862
+ Variant248,
863
+ Variant249,
864
+ Variant250,
865
+ Variant251,
866
+ Variant252,
867
+ Variant253,
868
+ Variant254,
869
+ Variant255,
870
+ }
871
+ } expands to "expected/try_from_bytes_trivial_is_bit_valid_enum.expected.rs"
872
+ }
873
+ }
874
+
875
+ #[test]
876
+ fn test_hash() {
877
+ test! {
878
+ ByteHash {
879
+ struct Foo<T: Clone>(T) where Self: Sized;
880
+ } expands to "expected/hash.expected.rs"
881
+ }
882
+ }
883
+
884
+ #[test]
885
+ fn test_eq() {
886
+ test! {
887
+ ByteEq {
888
+ struct Foo<T: Clone>(T) where Self: Sized;
889
+ } expands to "expected/eq.expected.rs"
890
+ }
891
+ }
892
+
893
+ #[test]
894
+ fn test_split_at() {
895
+ test! {
896
+ SplitAt {
897
+ #[repr(C)]
898
+ struct Foo<T: ?Sized + Copy>(T) where Self: Copy;
899
+ } expands to "expected/split_at_repr_c.expected.rs"
900
+ }
901
+
902
+ test! {
903
+ SplitAt {
904
+ #[repr(transparent)]
905
+ struct Foo<T: ?Sized + Copy>(T) where Self: Copy;
906
+ } expands to "expected/split_at_repr_transparent.expected.rs"
907
+ }
908
+
909
+ test! {
910
+ SplitAt {
911
+ #[repr(packed)]
912
+ struct Foo<T: ?Sized + Copy>(T) where Self: Copy;
913
+ } expands to {
914
+ ::core::compile_error! {
915
+ "must not have #[repr(packed)] attribute"
916
+ }
917
+ } no_build
918
+ }
919
+
920
+ test! {
921
+ SplitAt {
922
+ #[repr(packed(2))]
923
+ struct Foo<T: ?Sized + Copy>(T) where Self: Copy;
924
+ } expands to {
925
+ ::core::compile_error! {
926
+ "must not have #[repr(packed)] attribute"
927
+ }
928
+ } no_build
929
+ }
930
+
931
+ test! {
932
+ SplitAt {
933
+ enum Foo {}
934
+ } expands to {
935
+ ::core::compile_error! {
936
+ "can only be applied to structs"
937
+ }
938
+ } no_build
939
+ }
940
+
941
+ test! {
942
+ SplitAt {
943
+ union Foo { a: () }
944
+ } expands to {
945
+ ::core::compile_error! {
946
+ "can only be applied to structs"
947
+ }
948
+ } no_build
949
+ }
950
+
951
+ test! {
952
+ SplitAt {
953
+ struct Foo<T: ?Sized + Copy>(T) where Self: Copy;
954
+ } expands to {
955
+ ::core::compile_error! {
956
+ "must have #[repr(C)] or #[repr(transparent)] in order to guarantee this type's layout is splitable"
957
+ }
958
+ } no_build
959
+ }
960
+ }