html-to-markdown 2.27.2 → 2.28.0

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 (237) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +8 -8
  3. data/ext/html-to-markdown-rb/native/Cargo.toml +1 -1
  4. data/ext/html-to-markdown-rb/native/src/conversion/mod.rs +6 -0
  5. data/ext/html-to-markdown-rb/native/src/conversion/tables.rs +71 -0
  6. data/ext/html-to-markdown-rb/native/src/lib.rs +27 -1
  7. data/lib/html_to_markdown/version.rb +1 -1
  8. data/lib/html_to_markdown.rb +29 -0
  9. data/rust-vendor/getrandom/.cargo-checksum.json +1 -1
  10. data/rust-vendor/getrandom/.cargo_vcs_info.json +1 -1
  11. data/rust-vendor/getrandom/CHANGELOG.md +62 -43
  12. data/rust-vendor/getrandom/Cargo.lock +49 -56
  13. data/rust-vendor/getrandom/Cargo.toml +2 -2
  14. data/rust-vendor/getrandom/Cargo.toml.orig +2 -2
  15. data/rust-vendor/getrandom/src/backends/efi_rng.rs +8 -10
  16. data/rust-vendor/getrandom/src/backends/getentropy.rs +13 -4
  17. data/rust-vendor/getrandom/src/backends/linux_android_with_fallback.rs +10 -25
  18. data/rust-vendor/getrandom/src/backends/netbsd.rs +17 -25
  19. data/rust-vendor/getrandom/src/backends/rdrand.rs +15 -9
  20. data/rust-vendor/getrandom/src/backends/rndr.rs +2 -1
  21. data/rust-vendor/getrandom/src/backends/vxworks.rs +7 -3
  22. data/rust-vendor/getrandom/src/backends/windows.rs +21 -5
  23. data/rust-vendor/getrandom/src/utils/lazy_bool.rs +39 -0
  24. data/rust-vendor/getrandom/src/utils/lazy_ptr.rs +57 -0
  25. data/rust-vendor/html-to-markdown-rs/Cargo.toml +2 -2
  26. data/rust-vendor/html-to-markdown-rs/README.md +29 -0
  27. data/rust-vendor/html-to-markdown-rs/src/convert_api.rs +368 -0
  28. data/rust-vendor/html-to-markdown-rs/src/converter/main.rs +10 -5
  29. data/rust-vendor/html-to-markdown-rs/src/converter/text_node.rs +2 -1
  30. data/rust-vendor/html-to-markdown-rs/src/lib.rs +3 -0
  31. data/rust-vendor/html-to-markdown-rs/src/prelude.rs +3 -0
  32. data/rust-vendor/html-to-markdown-rs/tests/issue_216_217_regressions.rs +82 -0
  33. data/rust-vendor/quote/.cargo-checksum.json +1 -1
  34. data/rust-vendor/quote/.cargo_vcs_info.json +1 -1
  35. data/rust-vendor/quote/.github/workflows/ci.yml +2 -2
  36. data/rust-vendor/quote/Cargo.lock +21 -21
  37. data/rust-vendor/quote/Cargo.toml +2 -2
  38. data/rust-vendor/quote/Cargo.toml.orig +2 -2
  39. data/rust-vendor/quote/README.md +0 -1
  40. data/rust-vendor/quote/src/lib.rs +1 -1
  41. data/rust-vendor/quote/src/to_tokens.rs +7 -0
  42. data/rust-vendor/quote/tests/ui/not-quotable.stderr +1 -1
  43. data/rust-vendor/quote/tests/ui/not-repeatable.stderr +3 -11
  44. data/rust-vendor/r-efi/.cargo-checksum.json +1 -1
  45. data/rust-vendor/r-efi/.cargo_vcs_info.json +1 -1
  46. data/rust-vendor/r-efi/AUTHORS +1 -0
  47. data/rust-vendor/r-efi/Cargo.lock +1 -1
  48. data/rust-vendor/r-efi/Cargo.toml +1 -3
  49. data/rust-vendor/r-efi/Cargo.toml.orig +1 -5
  50. data/rust-vendor/r-efi/NEWS.md +16 -0
  51. data/rust-vendor/r-efi/src/base.rs +1 -1
  52. data/rust-vendor/r-efi/src/lib.rs +27 -12
  53. data/rust-vendor/r-efi/src/protocols/absolute_pointer.rs +4 -4
  54. data/rust-vendor/r-efi/src/protocols/block_io.rs +8 -8
  55. data/rust-vendor/r-efi/src/protocols/bus_specific_driver_override.rs +2 -2
  56. data/rust-vendor/r-efi/src/protocols/debug_support.rs +10 -10
  57. data/rust-vendor/r-efi/src/protocols/debugport.rs +8 -8
  58. data/rust-vendor/r-efi/src/protocols/decompress.rs +4 -4
  59. data/rust-vendor/r-efi/src/protocols/device_path_from_text.rs +4 -4
  60. data/rust-vendor/r-efi/src/protocols/device_path_to_text.rs +4 -4
  61. data/rust-vendor/r-efi/src/protocols/device_path_utilities.rs +16 -16
  62. data/rust-vendor/r-efi/src/protocols/disk_io.rs +4 -4
  63. data/rust-vendor/r-efi/src/protocols/disk_io2.rs +8 -8
  64. data/rust-vendor/r-efi/src/protocols/driver_binding.rs +6 -6
  65. data/rust-vendor/r-efi/src/protocols/driver_diagnostics2.rs +2 -2
  66. data/rust-vendor/r-efi/src/protocols/driver_family_override.rs +2 -2
  67. data/rust-vendor/r-efi/src/protocols/file.rs +28 -28
  68. data/rust-vendor/r-efi/src/protocols/graphics_output.rs +6 -6
  69. data/rust-vendor/r-efi/src/protocols/hii_database.rs +24 -24
  70. data/rust-vendor/r-efi/src/protocols/hii_font.rs +8 -8
  71. data/rust-vendor/r-efi/src/protocols/hii_font_ex.rs +10 -10
  72. data/rust-vendor/r-efi/src/protocols/hii_string.rs +10 -10
  73. data/rust-vendor/r-efi/src/protocols/ip4.rs +16 -16
  74. data/rust-vendor/r-efi/src/protocols/ip6.rs +18 -18
  75. data/rust-vendor/r-efi/src/protocols/load_file.rs +2 -2
  76. data/rust-vendor/r-efi/src/protocols/loaded_image.rs +2 -2
  77. data/rust-vendor/r-efi/src/protocols/managed_network.rs +16 -16
  78. data/rust-vendor/r-efi/src/protocols/memory_attribute.rs +6 -6
  79. data/rust-vendor/r-efi/src/protocols/mp_services.rs +15 -15
  80. data/rust-vendor/r-efi/src/protocols/pci_io.rs +26 -26
  81. data/rust-vendor/r-efi/src/protocols/platform_driver_override.rs +6 -6
  82. data/rust-vendor/r-efi/src/protocols/rng.rs +4 -4
  83. data/rust-vendor/r-efi/src/protocols/service_binding.rs +4 -4
  84. data/rust-vendor/r-efi/src/protocols/shell.rs +81 -81
  85. data/rust-vendor/r-efi/src/protocols/shell_dynamic_command.rs +4 -4
  86. data/rust-vendor/r-efi/src/protocols/simple_file_system.rs +2 -2
  87. data/rust-vendor/r-efi/src/protocols/simple_network.rs +26 -26
  88. data/rust-vendor/r-efi/src/protocols/simple_text_input.rs +4 -4
  89. data/rust-vendor/r-efi/src/protocols/simple_text_input_ex.rs +11 -11
  90. data/rust-vendor/r-efi/src/protocols/simple_text_output.rs +18 -18
  91. data/rust-vendor/r-efi/src/protocols/tcp4.rs +20 -20
  92. data/rust-vendor/r-efi/src/protocols/tcp6.rs +18 -18
  93. data/rust-vendor/r-efi/src/protocols/timestamp.rs +3 -3
  94. data/rust-vendor/r-efi/src/protocols/udp4.rs +16 -16
  95. data/rust-vendor/r-efi/src/protocols/udp6.rs +14 -14
  96. data/rust-vendor/r-efi/src/system.rs +115 -115
  97. data/rust-vendor/r-efi/src/vendor/intel/console_control.rs +6 -6
  98. data/rust-vendor/r-efi-5.3.0/.cargo-checksum.json +1 -0
  99. data/rust-vendor/r-efi-5.3.0/.cargo_vcs_info.json +6 -0
  100. data/rust-vendor/r-efi-5.3.0/.github/workflows/publish.yml +39 -0
  101. data/rust-vendor/r-efi-5.3.0/.github/workflows/rust-tests.yml +125 -0
  102. data/rust-vendor/r-efi-5.3.0/AUTHORS +74 -0
  103. data/rust-vendor/r-efi-5.3.0/Cargo.lock +16 -0
  104. data/rust-vendor/r-efi-5.3.0/Cargo.toml +70 -0
  105. data/rust-vendor/r-efi-5.3.0/Cargo.toml.orig +51 -0
  106. data/rust-vendor/r-efi-5.3.0/Makefile +85 -0
  107. data/rust-vendor/r-efi-5.3.0/NEWS.md +301 -0
  108. data/rust-vendor/r-efi-5.3.0/README.md +99 -0
  109. data/rust-vendor/r-efi-5.3.0/examples/freestanding.rs +34 -0
  110. data/rust-vendor/r-efi-5.3.0/examples/gop-query.rs +188 -0
  111. data/rust-vendor/r-efi-5.3.0/examples/hello-world.rs +55 -0
  112. data/rust-vendor/r-efi-5.3.0/src/base.rs +993 -0
  113. data/rust-vendor/r-efi-5.3.0/src/hii.rs +1300 -0
  114. data/rust-vendor/r-efi-5.3.0/src/lib.rs +182 -0
  115. data/rust-vendor/r-efi-5.3.0/src/protocols/absolute_pointer.rs +69 -0
  116. data/rust-vendor/r-efi-5.3.0/src/protocols/block_io.rs +70 -0
  117. data/rust-vendor/r-efi-5.3.0/src/protocols/bus_specific_driver_override.rs +32 -0
  118. data/rust-vendor/r-efi-5.3.0/src/protocols/debug_support.rs +835 -0
  119. data/rust-vendor/r-efi-5.3.0/src/protocols/debugport.rs +42 -0
  120. data/rust-vendor/r-efi-5.3.0/src/protocols/decompress.rs +37 -0
  121. data/rust-vendor/r-efi-5.3.0/src/protocols/device_path.rs +82 -0
  122. data/rust-vendor/r-efi-5.3.0/src/protocols/device_path_from_text.rs +26 -0
  123. data/rust-vendor/r-efi-5.3.0/src/protocols/device_path_to_text.rs +30 -0
  124. data/rust-vendor/r-efi-5.3.0/src/protocols/device_path_utilities.rs +63 -0
  125. data/rust-vendor/r-efi-5.3.0/src/protocols/disk_io.rs +40 -0
  126. data/rust-vendor/r-efi-5.3.0/src/protocols/disk_io2.rs +58 -0
  127. data/rust-vendor/r-efi-5.3.0/src/protocols/driver_binding.rs +42 -0
  128. data/rust-vendor/r-efi-5.3.0/src/protocols/driver_diagnostics2.rs +38 -0
  129. data/rust-vendor/r-efi-5.3.0/src/protocols/driver_family_override.rs +23 -0
  130. data/rust-vendor/r-efi-5.3.0/src/protocols/file.rs +183 -0
  131. data/rust-vendor/r-efi-5.3.0/src/protocols/graphics_output.rs +103 -0
  132. data/rust-vendor/r-efi-5.3.0/src/protocols/hii_database.rs +299 -0
  133. data/rust-vendor/r-efi-5.3.0/src/protocols/hii_font.rs +87 -0
  134. data/rust-vendor/r-efi-5.3.0/src/protocols/hii_font_ex.rs +107 -0
  135. data/rust-vendor/r-efi-5.3.0/src/protocols/hii_package_list.rs +14 -0
  136. data/rust-vendor/r-efi-5.3.0/src/protocols/hii_string.rs +71 -0
  137. data/rust-vendor/r-efi-5.3.0/src/protocols/ip4.rs +202 -0
  138. data/rust-vendor/r-efi-5.3.0/src/protocols/ip6.rs +264 -0
  139. data/rust-vendor/r-efi-5.3.0/src/protocols/load_file.rs +26 -0
  140. data/rust-vendor/r-efi-5.3.0/src/protocols/load_file2.rs +15 -0
  141. data/rust-vendor/r-efi-5.3.0/src/protocols/loaded_image.rs +39 -0
  142. data/rust-vendor/r-efi-5.3.0/src/protocols/loaded_image_device_path.rs +13 -0
  143. data/rust-vendor/r-efi-5.3.0/src/protocols/managed_network.rs +147 -0
  144. data/rust-vendor/r-efi-5.3.0/src/protocols/memory_attribute.rs +40 -0
  145. data/rust-vendor/r-efi-5.3.0/src/protocols/mp_services.rs +121 -0
  146. data/rust-vendor/r-efi-5.3.0/src/protocols/pci_io.rs +203 -0
  147. data/rust-vendor/r-efi-5.3.0/src/protocols/platform_driver_override.rs +46 -0
  148. data/rust-vendor/r-efi-5.3.0/src/protocols/rng.rs +83 -0
  149. data/rust-vendor/r-efi-5.3.0/src/protocols/service_binding.rs +20 -0
  150. data/rust-vendor/r-efi-5.3.0/src/protocols/shell.rs +295 -0
  151. data/rust-vendor/r-efi-5.3.0/src/protocols/shell_dynamic_command.rs +33 -0
  152. data/rust-vendor/r-efi-5.3.0/src/protocols/shell_parameters.rs +23 -0
  153. data/rust-vendor/r-efi-5.3.0/src/protocols/simple_file_system.rs +26 -0
  154. data/rust-vendor/r-efi-5.3.0/src/protocols/simple_network.rs +196 -0
  155. data/rust-vendor/r-efi-5.3.0/src/protocols/simple_text_input.rs +38 -0
  156. data/rust-vendor/r-efi-5.3.0/src/protocols/simple_text_input_ex.rs +85 -0
  157. data/rust-vendor/r-efi-5.3.0/src/protocols/simple_text_output.rs +86 -0
  158. data/rust-vendor/r-efi-5.3.0/src/protocols/tcp4.rs +224 -0
  159. data/rust-vendor/r-efi-5.3.0/src/protocols/tcp6.rs +202 -0
  160. data/rust-vendor/r-efi-5.3.0/src/protocols/timestamp.rs +32 -0
  161. data/rust-vendor/r-efi-5.3.0/src/protocols/udp4.rs +151 -0
  162. data/rust-vendor/r-efi-5.3.0/src/protocols/udp6.rs +137 -0
  163. data/rust-vendor/r-efi-5.3.0/src/protocols.rs +54 -0
  164. data/rust-vendor/r-efi-5.3.0/src/system.rs +1130 -0
  165. data/rust-vendor/r-efi-5.3.0/src/vendor/intel/console_control.rs +37 -0
  166. data/rust-vendor/r-efi-5.3.0/src/vendor.rs +10 -0
  167. data/rust-vendor/tokio/.cargo-checksum.json +1 -1
  168. data/rust-vendor/tokio/.cargo_vcs_info.json +1 -1
  169. data/rust-vendor/tokio/CHANGELOG.md +94 -0
  170. data/rust-vendor/tokio/Cargo.lock +1549 -0
  171. data/rust-vendor/tokio/Cargo.toml +96 -83
  172. data/rust-vendor/tokio/Cargo.toml.orig +7 -7
  173. data/rust-vendor/tokio/README.md +1 -1
  174. data/rust-vendor/tokio/src/fs/open_options.rs +4 -1
  175. data/rust-vendor/tokio/src/fs/read.rs +4 -1
  176. data/rust-vendor/tokio/src/fs/write.rs +4 -1
  177. data/rust-vendor/tokio/src/io/async_write.rs +3 -4
  178. data/rust-vendor/tokio/src/io/poll_evented.rs +23 -1
  179. data/rust-vendor/tokio/src/io/stderr.rs +15 -1
  180. data/rust-vendor/tokio/src/io/stdout.rs +14 -0
  181. data/rust-vendor/tokio/src/io/util/async_write_ext.rs +2 -2
  182. data/rust-vendor/tokio/src/io/util/write_buf.rs +11 -2
  183. data/rust-vendor/tokio/src/lib.rs +12 -28
  184. data/rust-vendor/tokio/src/macros/select.rs +6 -8
  185. data/rust-vendor/tokio/src/net/tcp/socket.rs +25 -1
  186. data/rust-vendor/tokio/src/net/tcp/stream.rs +40 -1
  187. data/rust-vendor/tokio/src/process/unix/pidfd_reaper.rs +1 -41
  188. data/rust-vendor/tokio/src/runtime/blocking/pool.rs +18 -14
  189. data/rust-vendor/tokio/src/runtime/builder.rs +10 -4
  190. data/rust-vendor/tokio/src/runtime/handle.rs +3 -2
  191. data/rust-vendor/tokio/src/runtime/io/driver/uring.rs +49 -61
  192. data/rust-vendor/tokio/src/runtime/io/driver.rs +6 -5
  193. data/rust-vendor/tokio/src/runtime/mod.rs +20 -1
  194. data/rust-vendor/tokio/src/runtime/runtime.rs +71 -1
  195. data/rust-vendor/tokio/src/runtime/scheduler/current_thread/mod.rs +24 -8
  196. data/rust-vendor/tokio/src/runtime/scheduler/multi_thread/worker.rs +5 -0
  197. data/rust-vendor/tokio/src/runtime/task/core.rs +1 -0
  198. data/rust-vendor/tokio/src/runtime/task/join.rs +7 -3
  199. data/rust-vendor/tokio/src/runtime/task/list.rs +5 -3
  200. data/rust-vendor/tokio/src/runtime/task/mod.rs +0 -5
  201. data/rust-vendor/tokio/src/runtime/tests/loom_blocking.rs +39 -1
  202. data/rust-vendor/tokio/src/signal/mod.rs +6 -17
  203. data/rust-vendor/tokio/src/signal/registry.rs +1 -1
  204. data/rust-vendor/tokio/src/signal/unix.rs +24 -44
  205. data/rust-vendor/tokio/src/signal/windows/sys.rs +52 -64
  206. data/rust-vendor/tokio/src/signal/windows.rs +35 -23
  207. data/rust-vendor/tokio/src/sync/mpsc/mod.rs +3 -1
  208. data/rust-vendor/tokio/src/sync/oneshot.rs +13 -0
  209. data/rust-vendor/tokio/src/sync/rwlock.rs +4 -5
  210. data/rust-vendor/tokio/src/sync/tests/loom_oneshot.rs +27 -1
  211. data/rust-vendor/tokio/src/task/blocking.rs +16 -1
  212. data/rust-vendor/tokio/src/task/builder.rs +2 -2
  213. data/rust-vendor/tokio/src/task/mod.rs +1 -1
  214. data/rust-vendor/tokio/src/task/spawn.rs +8 -3
  215. data/rust-vendor/tokio/src/task/yield_now.rs +13 -23
  216. data/rust-vendor/tokio/src/time/clock.rs +62 -0
  217. data/rust-vendor/tokio/src/util/memchr.rs +32 -4
  218. data/rust-vendor/tokio/src/util/sharded_list.rs +6 -4
  219. data/rust-vendor/tokio/tests/fs_link.rs +54 -0
  220. data/rust-vendor/tokio/tests/io_async_fd_memory_leak.rs +209 -0
  221. data/rust-vendor/tokio/tests/io_write_buf.rs +56 -0
  222. data/rust-vendor/tokio/tests/process_issue_7144.rs +8 -0
  223. data/rust-vendor/tokio/tests/rt_basic.rs +41 -0
  224. data/rust-vendor/tokio/tests/rt_common_before_park.rs +92 -0
  225. data/rust-vendor/tokio/tests/rt_metrics.rs +1 -1
  226. data/rust-vendor/tokio/tests/rt_panic.rs +12 -0
  227. data/rust-vendor/tokio/tests/rt_shutdown_err.rs +82 -0
  228. data/rust-vendor/tokio/tests/rt_threaded.rs +49 -1
  229. data/rust-vendor/tokio/tests/rt_unstable_metrics.rs +32 -0
  230. data/rust-vendor/tokio/tests/tcp_connect.rs +2 -3
  231. data/rust-vendor/tokio/tests/tcp_shutdown.rs +1 -3
  232. data/rust-vendor/tokio/tests/tcp_socket.rs +3 -4
  233. data/rust-vendor/tokio/tests/tcp_stream.rs +3 -0
  234. data/sig/html_to_markdown.rbs +46 -0
  235. data/spec/convert_with_tables_spec.rb +194 -0
  236. metadata +80 -3
  237. data/rust-vendor/getrandom/src/utils/lazy.rs +0 -64
@@ -0,0 +1,82 @@
1
+ //! Regression tests for issues #216 and #217.
2
+ //!
3
+ //! Both issues report a panic at text_node.rs:191:
4
+ //! "byte index N is out of bounds of ``"
5
+ //!
6
+ //! Root cause: When inline handlers (strong, em, etc.) collect children into a
7
+ //! fresh String buffer while inheriting a parent context with block_content_start
8
+ //! set by a paragraph handler, the index points into the wrong buffer.
9
+
10
+ use html_to_markdown_rs::convert;
11
+
12
+ /// Minimal reproducer: a <details> containing a <p> with <strong> inside.
13
+ /// The <details> handler collects into a fresh buffer, the <p> sets
14
+ /// block_content_start, and the <strong> handler creates yet another fresh
15
+ /// buffer — causing the index to be out of bounds.
16
+ #[test]
17
+ fn test_issue_216_217_details_paragraph_strong_no_panic() {
18
+ let html = r#"
19
+ <div>some preceding content</div>
20
+ <details>
21
+ <summary>Summary text</summary>
22
+ <p><strong>Bold text inside details paragraph
23
+ </strong></p>
24
+ </details>
25
+ "#;
26
+
27
+ let result = convert(html, None);
28
+ assert!(result.is_ok());
29
+ }
30
+
31
+ /// Same issue can occur with emphasis inside a paragraph inside details.
32
+ #[test]
33
+ fn test_issue_216_217_details_paragraph_em_no_panic() {
34
+ let html = r#"
35
+ <div>some preceding content</div>
36
+ <details>
37
+ <summary>Summary</summary>
38
+ <p><em>Italic text inside details paragraph
39
+ </em></p>
40
+ </details>
41
+ "#;
42
+
43
+ let result = convert(html, None);
44
+ assert!(result.is_ok());
45
+ }
46
+
47
+ /// The panic can also occur with nested inline elements inside paragraphs
48
+ /// collected by any handler that creates a fresh buffer.
49
+ #[test]
50
+ fn test_issue_216_217_nested_strong_in_paragraph_no_panic() {
51
+ let html = r#"
52
+ <details>
53
+ <p>Some text <strong>bold text with trailing newline
54
+ </strong> more text</p>
55
+ </details>
56
+ "#;
57
+
58
+ let result = convert(html, None);
59
+ assert!(result.is_ok());
60
+ }
61
+
62
+ /// Test with the actual structure pattern from the reported URL.
63
+ #[test]
64
+ fn test_issue_216_217_complex_details_structure() {
65
+ let html = r#"
66
+ <div class="content">
67
+ <section>
68
+ <details>
69
+ <summary>Stratégie adaptation</summary>
70
+ <p><strong>Risque élevé pour les populations
71
+ </strong></p>
72
+ <p>Description du risque avec des détails supplémentaires.</p>
73
+ </details>
74
+ </section>
75
+ </div>
76
+ "#;
77
+
78
+ let result = convert(html, None);
79
+ assert!(result.is_ok());
80
+ let md = result.unwrap();
81
+ assert!(md.contains("Risque"));
82
+ }
@@ -1 +1 @@
1
- {"files":{".cargo_vcs_info.json":"94333ca7e9823d07e8a4d248b0f8c943aaa0bcc0fdaf5b37b5306c921b9c81ab",".github/FUNDING.yml":"b017158736b3c9751a2d21edfce7fe61c8954e2fced8da8dd3013c2f3e295bd9",".github/workflows/ci.yml":"b04aabb8eb8ecc7b9b443280fe51489df7fb450e327ee459a19e727c86793690","Cargo.lock":"44bd3ed7bd105a5c29ec4e585308c3d29a5e6d11e069ece44a5abe8e869e116d","Cargo.toml":"0eb3904bf712f0a2b4501057f0b4206ba5d3ecd31ff5c7708a5407164ee13657","Cargo.toml.orig":"39867fc2710eeff590ed41e0907591b0f2edf10f41c6897c0a21f554c91d4575","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"5bc59a97099fbdc7f9f8b69d3f9910e27629184647412b5009b274b5b8bfb6d1","build.rs":"cd6808c02e476b09a520105e2c6f6d325cccb1ecd542cbbcc836a0ae6f6fb0f1","rust-toolchain.toml":"6bbb61302978c736b2da03e4fb40e3beab908f85d533ab46fd541e637b5f3e0f","src/ext.rs":"dabcf1dbf9a81c2dccbfb85f81a08120f5a15be40616d51434ed4ebdfe0c7283","src/format.rs":"662db1f14106d79aacab400a3176a75989a4437ecaaa85ab88cd9a40b750cc5b","src/ident_fragment.rs":"eed1a7407182c00ddfdc98741eaa6e234a6d2c01755e95f943b27926b8c92243","src/lib.rs":"3647fe365bb87f0199dacc3bb39644335d49375c7c019305a90cb9953e3e32e1","src/runtime.rs":"fdb7986b31141627408b51381607f66ef4b69dd81b080c2f6489da267e96b2ba","src/spanned.rs":"713678bf5cb3b4bf2f119dcf64d188a63dc59455a724c3d2567ceab83b734d73","src/to_tokens.rs":"0d0a70923bf91ee43a4361dd3b6cd2ac52ceba736289a200b189769b8fc8c810","tests/compiletest.rs":"4e381aa8ca3eabb7ac14d1e0c3700b3223e47640547a6988cfa13ad68255f60f","tests/test.rs":"023d6b57ba5ba199a04d9757e3b1464c2bc09579b035ea82c047e08d89d19226","tests/ui/does-not-have-iter-interpolated-dup.rs":"ad13eea21d4cdd2ab6c082f633392e1ff20fb0d1af5f2177041e0bf7f30da695","tests/ui/does-not-have-iter-interpolated-dup.stderr":"d076d9581ce9f684dcf51aadcf77c206a8a1d3c6774cee14e5d40339ea3ebe07","tests/ui/does-not-have-iter-interpolated.rs":"83a5b3f240651adcbe4b6e51076d76d653ad439b37442cf4054f1fd3c073f3b7","tests/ui/does-not-have-iter-interpolated.stderr":"5b611cd647c162f9d5b52d8c3eb8ed50bd1d7d325671aaf85815d7420e867169","tests/ui/does-not-have-iter-separated.rs":"fe413c48331d5e3a7ae5fef6a5892a90c72f610d54595879eb49d0a94154ba3f","tests/ui/does-not-have-iter-separated.stderr":"43fe592afacc052da2d0c9525bf7160fd4a80effa0949e83fe6291b8d6257dcb","tests/ui/does-not-have-iter.rs":"09dc9499d861b63cebb0848b855b78e2dc9497bfde37ba6339f3625ae009a62f","tests/ui/does-not-have-iter.stderr":"ccd8fb640776402f7fc980be05df5f998b9557f67a0d5d2ab89f2f7b6bd0731a","tests/ui/not-quotable.rs":"5759d0884943417609f28faadc70254a3e2fd3d9bd6ff7297a3fb70a77fafd8a","tests/ui/not-quotable.stderr":"433a290bd53070d5cce6d623f9ef6f991756a78de109d3e486b46b699c2ce764","tests/ui/not-repeatable.rs":"a4b115c04e4e41049a05f5b69450503fbffeba031218b4189cb931839f7f9a9c","tests/ui/not-repeatable.stderr":"095da8ad7db595241a5df7615134d8dc07d607d9bad5fb8d9b771e6bae967c9c","tests/ui/wrong-type-span.rs":"6195e35ea844c0c52ba1cff5d790c3a371af6915d137d377834ad984229ef9ea","tests/ui/wrong-type-span.stderr":"cad072e40e0ecc04f375122ae41aede2f0da2a9244492b3fcf70249e59d1b128"},"package":"21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"}
1
+ {"files":{".cargo_vcs_info.json":"028423ae25f8c28e13cd05257f322bf8db75a4cc42dc24c6d270c47638531281",".github/FUNDING.yml":"b017158736b3c9751a2d21edfce7fe61c8954e2fced8da8dd3013c2f3e295bd9",".github/workflows/ci.yml":"4a8b66b436e23d9078bcf67e652cce0e5bca4129090e8aca1a421f17ba7335ea","Cargo.lock":"c26858e11fd8b6a1ce3f879d5121f558f9e6d614a47341955ac600bfea2394e8","Cargo.toml":"baa198cfd5e82e453e6b8d9bd5435b7a79289edf86f276fc578ee726d39cc870","Cargo.toml.orig":"b6045edc8ab83292438f5651a40949b74d1d85298e523c6f3d8eaeb5f00dbf3a","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"9d6af721967088b8263c0544c0c3c459206998252dd5632a3bdf87cb27ec92be","build.rs":"cd6808c02e476b09a520105e2c6f6d325cccb1ecd542cbbcc836a0ae6f6fb0f1","rust-toolchain.toml":"6bbb61302978c736b2da03e4fb40e3beab908f85d533ab46fd541e637b5f3e0f","src/ext.rs":"dabcf1dbf9a81c2dccbfb85f81a08120f5a15be40616d51434ed4ebdfe0c7283","src/format.rs":"662db1f14106d79aacab400a3176a75989a4437ecaaa85ab88cd9a40b750cc5b","src/ident_fragment.rs":"eed1a7407182c00ddfdc98741eaa6e234a6d2c01755e95f943b27926b8c92243","src/lib.rs":"7cd707302e0915ae8fa9e295fa154eea80a592fac9e85a857f22f3a82442dcc3","src/runtime.rs":"fdb7986b31141627408b51381607f66ef4b69dd81b080c2f6489da267e96b2ba","src/spanned.rs":"713678bf5cb3b4bf2f119dcf64d188a63dc59455a724c3d2567ceab83b734d73","src/to_tokens.rs":"84c81c39c8443d116d031208abcca9f8482b8abf7bde3ee6723b7f987c10b2fd","tests/compiletest.rs":"4e381aa8ca3eabb7ac14d1e0c3700b3223e47640547a6988cfa13ad68255f60f","tests/test.rs":"023d6b57ba5ba199a04d9757e3b1464c2bc09579b035ea82c047e08d89d19226","tests/ui/does-not-have-iter-interpolated-dup.rs":"ad13eea21d4cdd2ab6c082f633392e1ff20fb0d1af5f2177041e0bf7f30da695","tests/ui/does-not-have-iter-interpolated-dup.stderr":"d076d9581ce9f684dcf51aadcf77c206a8a1d3c6774cee14e5d40339ea3ebe07","tests/ui/does-not-have-iter-interpolated.rs":"83a5b3f240651adcbe4b6e51076d76d653ad439b37442cf4054f1fd3c073f3b7","tests/ui/does-not-have-iter-interpolated.stderr":"5b611cd647c162f9d5b52d8c3eb8ed50bd1d7d325671aaf85815d7420e867169","tests/ui/does-not-have-iter-separated.rs":"fe413c48331d5e3a7ae5fef6a5892a90c72f610d54595879eb49d0a94154ba3f","tests/ui/does-not-have-iter-separated.stderr":"43fe592afacc052da2d0c9525bf7160fd4a80effa0949e83fe6291b8d6257dcb","tests/ui/does-not-have-iter.rs":"09dc9499d861b63cebb0848b855b78e2dc9497bfde37ba6339f3625ae009a62f","tests/ui/does-not-have-iter.stderr":"ccd8fb640776402f7fc980be05df5f998b9557f67a0d5d2ab89f2f7b6bd0731a","tests/ui/not-quotable.rs":"5759d0884943417609f28faadc70254a3e2fd3d9bd6ff7297a3fb70a77fafd8a","tests/ui/not-quotable.stderr":"a9748bc9a0a72a17f9c1f96e9b12be3686e9d7d51f120796516e26e5cebf62ad","tests/ui/not-repeatable.rs":"a4b115c04e4e41049a05f5b69450503fbffeba031218b4189cb931839f7f9a9c","tests/ui/not-repeatable.stderr":"72105d3dec4e8ed2a657db7d397e30d452c26c1488cb1e18e23c2d1d137a6f6d","tests/ui/wrong-type-span.rs":"6195e35ea844c0c52ba1cff5d790c3a371af6915d137d377834ad984229ef9ea","tests/ui/wrong-type-span.stderr":"cad072e40e0ecc04f375122ae41aede2f0da2a9244492b3fcf70249e59d1b128"},"package":"41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "git": {
3
- "sha1": "ad9fb4019efc3f34e5d3b9be416199937f7a8ee3"
3
+ "sha1": "842ffde933fdd76cd1681a288bed136d8b95a97a"
4
4
  },
5
5
  "path_in_vcs": ""
6
6
  }
@@ -24,7 +24,7 @@ jobs:
24
24
  strategy:
25
25
  fail-fast: false
26
26
  matrix:
27
- rust: [nightly, stable, beta, 1.83.0, 1.68.0]
27
+ rust: [nightly, stable, beta, 1.83.0, 1.71.0]
28
28
  timeout-minutes: 45
29
29
  steps:
30
30
  - uses: actions/checkout@v6
@@ -37,7 +37,7 @@ jobs:
37
37
  if: matrix.rust == 'nightly'
38
38
  - run: cargo check
39
39
  - run: cargo test
40
- if: matrix.rust != '1.68.0'
40
+ if: matrix.rust != '1.71.0'
41
41
  - run: cargo run --manifest-path benches/Cargo.toml
42
42
  - uses: actions/upload-artifact@v6
43
43
  if: matrix.rust == 'nightly' && always()
@@ -44,9 +44,9 @@ checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
44
44
 
45
45
  [[package]]
46
46
  name = "memchr"
47
- version = "2.7.6"
47
+ version = "2.8.0"
48
48
  source = "registry+https://github.com/rust-lang/crates.io-index"
49
- checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
49
+ checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79"
50
50
 
51
51
  [[package]]
52
52
  name = "proc-macro2"
@@ -59,16 +59,16 @@ dependencies = [
59
59
 
60
60
  [[package]]
61
61
  name = "quote"
62
- version = "1.0.43"
62
+ version = "1.0.44"
63
63
  source = "registry+https://github.com/rust-lang/crates.io-index"
64
- checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a"
64
+ checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4"
65
65
  dependencies = [
66
66
  "proc-macro2",
67
67
  ]
68
68
 
69
69
  [[package]]
70
70
  name = "quote"
71
- version = "1.0.44"
71
+ version = "1.0.45"
72
72
  dependencies = [
73
73
  "proc-macro2",
74
74
  "rustversion",
@@ -106,7 +106,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
106
106
  checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
107
107
  dependencies = [
108
108
  "proc-macro2",
109
- "quote 1.0.43",
109
+ "quote 1.0.44",
110
110
  "syn",
111
111
  ]
112
112
 
@@ -134,12 +134,12 @@ dependencies = [
134
134
 
135
135
  [[package]]
136
136
  name = "syn"
137
- version = "2.0.114"
137
+ version = "2.0.117"
138
138
  source = "registry+https://github.com/rust-lang/crates.io-index"
139
- checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
139
+ checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
140
140
  dependencies = [
141
141
  "proc-macro2",
142
- "quote 1.0.43",
142
+ "quote 1.0.44",
143
143
  "unicode-ident",
144
144
  ]
145
145
 
@@ -160,9 +160,9 @@ dependencies = [
160
160
 
161
161
  [[package]]
162
162
  name = "toml"
163
- version = "0.9.11+spec-1.1.0"
163
+ version = "1.0.3+spec-1.1.0"
164
164
  source = "registry+https://github.com/rust-lang/crates.io-index"
165
- checksum = "f3afc9a848309fe1aaffaed6e1546a7a14de1f935dc9d89d32afd9a44bab7c46"
165
+ checksum = "c7614eaf19ad818347db24addfa201729cf2a9b6fdfd9eb0ab870fcacc606c0c"
166
166
  dependencies = [
167
167
  "indexmap",
168
168
  "serde_core",
@@ -175,18 +175,18 @@ dependencies = [
175
175
 
176
176
  [[package]]
177
177
  name = "toml_datetime"
178
- version = "0.7.5+spec-1.1.0"
178
+ version = "1.0.0+spec-1.1.0"
179
179
  source = "registry+https://github.com/rust-lang/crates.io-index"
180
- checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347"
180
+ checksum = "32c2555c699578a4f59f0cc68e5116c8d7cabbd45e1409b989d4be085b53f13e"
181
181
  dependencies = [
182
182
  "serde_core",
183
183
  ]
184
184
 
185
185
  [[package]]
186
186
  name = "toml_parser"
187
- version = "1.0.6+spec-1.1.0"
187
+ version = "1.0.9+spec-1.1.0"
188
188
  source = "registry+https://github.com/rust-lang/crates.io-index"
189
- checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44"
189
+ checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4"
190
190
  dependencies = [
191
191
  "winnow",
192
192
  ]
@@ -199,9 +199,9 @@ checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607"
199
199
 
200
200
  [[package]]
201
201
  name = "trybuild"
202
- version = "1.0.114"
202
+ version = "1.0.116"
203
203
  source = "registry+https://github.com/rust-lang/crates.io-index"
204
- checksum = "3e17e807bff86d2a06b52bca4276746584a78375055b6e45843925ce2802b335"
204
+ checksum = "47c635f0191bd3a2941013e5062667100969f8c4e9cd787c14f977265d73616e"
205
205
  dependencies = [
206
206
  "dissimilar",
207
207
  "glob",
@@ -215,9 +215,9 @@ dependencies = [
215
215
 
216
216
  [[package]]
217
217
  name = "unicode-ident"
218
- version = "1.0.22"
218
+ version = "1.0.24"
219
219
  source = "registry+https://github.com/rust-lang/crates.io-index"
220
- checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
220
+ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
221
221
 
222
222
  [[package]]
223
223
  name = "winapi-util"
@@ -251,6 +251,6 @@ checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829"
251
251
 
252
252
  [[package]]
253
253
  name = "zmij"
254
- version = "1.0.16"
254
+ version = "1.0.21"
255
255
  source = "registry+https://github.com/rust-lang/crates.io-index"
256
- checksum = "dfcd145825aace48cff44a8844de64bf75feec3080e0aa5cdbde72961ae51a65"
256
+ checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa"
@@ -11,9 +11,9 @@
11
11
 
12
12
  [package]
13
13
  edition = "2021"
14
- rust-version = "1.68"
14
+ rust-version = "1.71"
15
15
  name = "quote"
16
- version = "1.0.44"
16
+ version = "1.0.45"
17
17
  authors = ["David Tolnay <dtolnay@gmail.com>"]
18
18
  build = "build.rs"
19
19
  autolib = false
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "quote"
3
- version = "1.0.44"
3
+ version = "1.0.45"
4
4
  authors = ["David Tolnay <dtolnay@gmail.com>"]
5
5
  autobenches = false
6
6
  categories = ["development-tools::procedural-macro-helpers"]
@@ -10,7 +10,7 @@ edition = "2021"
10
10
  keywords = ["macros", "syn"]
11
11
  license = "MIT OR Apache-2.0"
12
12
  repository = "https://github.com/dtolnay/quote"
13
- rust-version = "1.68"
13
+ rust-version = "1.71"
14
14
 
15
15
  [dependencies]
16
16
  proc-macro2 = { version = "1.0.80", default-features = false }
@@ -34,7 +34,6 @@ macros.
34
34
  quote = "1.0"
35
35
  ```
36
36
 
37
- *Version requirement: Quote supports rustc 1.68 and up.*<br>
38
37
  [*Release notes*](https://github.com/dtolnay/quote/releases)
39
38
 
40
39
  <br>
@@ -89,7 +89,7 @@
89
89
  //! [prettyplease]: https://github.com/dtolnay/prettyplease
90
90
 
91
91
  #![no_std]
92
- #![doc(html_root_url = "https://docs.rs/quote/1.0.44")]
92
+ #![doc(html_root_url = "https://docs.rs/quote/1.0.45")]
93
93
  #![allow(
94
94
  clippy::doc_markdown,
95
95
  clippy::elidable_lifetime_names,
@@ -1,4 +1,5 @@
1
1
  use super::TokenStreamExt;
2
+ use std::sync::Arc;
2
3
  use alloc::borrow::{Cow, ToOwned};
3
4
  use alloc::boxed::Box;
4
5
  use alloc::ffi::CString;
@@ -104,6 +105,12 @@ impl<T: ?Sized + ToTokens> ToTokens for Rc<T> {
104
105
  }
105
106
  }
106
107
 
108
+ impl<T: ?Sized + ToTokens> ToTokens for Arc<T> {
109
+ fn to_tokens(&self, tokens: &mut TokenStream) {
110
+ (**self).to_tokens(tokens);
111
+ }
112
+ }
113
+
107
114
  impl<T: ToTokens> ToTokens for Option<T> {
108
115
  fn to_tokens(&self, tokens: &mut TokenStream) {
109
116
  if let Some(t) = self {
@@ -10,11 +10,11 @@ error[E0277]: the trait bound `Ipv4Addr: ToTokens` is not satisfied
10
10
  = help: the following other types implement trait `ToTokens`:
11
11
  &T
12
12
  &mut T
13
+ Arc<T>
13
14
  Box<T>
14
15
  CStr
15
16
  CString
16
17
  Cow<'a, T>
17
18
  Option<T>
18
- Rc<T>
19
19
  and $N others
20
20
  = note: this error originates in the macro `quote` (in Nightly builds, run with -Z macro-backtrace for more info)
@@ -2,7 +2,7 @@ error[E0599]: the method `quote_into_iter` exists for struct `Ipv4Addr`, but its
2
2
  --> tests/ui/not-repeatable.rs:7:13
3
3
  |
4
4
  3 | struct Ipv4Addr;
5
- | --------------- method `quote_into_iter` not found for this struct because it doesn't satisfy `Ipv4Addr: Iterator`, `Ipv4Addr: ToTokens`, `Ipv4Addr: quote::__private::ext::RepIteratorExt` or `Ipv4Addr: quote::__private::ext::RepToTokensExt`
5
+ | --------------- method `quote_into_iter` not found for this struct because `Ipv4Addr` doesn't implement `Iterator` or `ToTokens`
6
6
  ...
7
7
  7 | let _ = quote! { #(#ip)* };
8
8
  | ^^^^^^^^^^^^^^^^^^ method cannot be called on `Ipv4Addr` due to unsatisfied trait bounds
@@ -19,8 +19,8 @@ error[E0599]: the method `quote_into_iter` exists for struct `Ipv4Addr`, but its
19
19
  note: the traits `Iterator` and `ToTokens` must be implemented
20
20
  --> $RUST/core/src/iter/traits/iterator.rs
21
21
  |
22
- | pub trait Iterator {
23
- | ^^^^^^^^^^^^^^^^^^
22
+ | pub const trait Iterator {
23
+ | ^^^^^^^^^^^^^^^^^^^^^^^^
24
24
  |
25
25
  ::: src/to_tokens.rs
26
26
  |
@@ -32,11 +32,3 @@ note: the traits `Iterator` and `ToTokens` must be implemented
32
32
  candidate #2: `quote::__private::ext::RepIteratorExt`
33
33
  candidate #3: `quote::__private::ext::RepToTokensExt`
34
34
  = note: this error originates in the macro `$crate::quote_bind_into_iter` which comes from the expansion of the macro `quote` (in Nightly builds, run with -Z macro-backtrace for more info)
35
-
36
- error[E0282]: type annotations needed
37
- --> tests/ui/not-repeatable.rs:7:13
38
- |
39
- 7 | let _ = quote! { #(#ip)* };
40
- | ^^^^^^^^^^^^^^^^^^ cannot infer type
41
- |
42
- = note: this error originates in the macro `$crate::quote_bind_next_or_break` which comes from the expansion of the macro `quote` (in Nightly builds, run with -Z macro-backtrace for more info)
@@ -1 +1 @@
1
- {"files":{".cargo_vcs_info.json":"50e0c72ee0164f182d7b5db0213cdb1626bad950f2443b05d006c28c7f0641b5",".github/workflows/publish.yml":"431c68b9d566180134e8771ea9cb9339d72ec77c3010b4cedfd423e271dc7386",".github/workflows/rust-tests.yml":"ca7ba173da0a6510676770b103119ce57029d424afe9e1027541d529af6c7f3f","AUTHORS":"ff92bed461f50338dd703a9ba9aee496a425957873df1d91192776e4bdf5dda7","Cargo.lock":"cc335892128a13fb1431213f65cfd3281ff098cf47b97882ca097f0206d7e0b0","Cargo.toml":"dba000c0173b09b1e3b69afa42a715b5ab64355e6502ce6d9d1767c7845cf402","Cargo.toml.orig":"57b6d9b9a1b6524f6b4dcc1dd24970ac03e6959786a6cfedaec9ba52878b4d3e","Makefile":"b445cfadd750b564ba8ef072754a4eed5aa127f12faa6e5b15a35b748d28b6fb","NEWS.md":"a8924309f9b5d8cf035b12ee47d4afe99c3ca57ea60061239263ac0b0e2161ba","README.md":"420f65fec3ba2e89d49da51b222d2881d26959037a7b7d3794143db4bd4627b1","examples/freestanding.rs":"0be5eb60397228306aa9f8afc533e32926d210205a7359e14da903159482416d","examples/gop-query.rs":"3257c55d6ae4572db1bfcaf20bc05990ea92d46c5d292eb99c278242f1007e2c","examples/hello-world.rs":"1a398f93a54bfddaab6ba3e0145cf70496266c44b9748a11ff569a9a18063bc4","src/base.rs":"e0f0b69967dc436e302f37230f5aff0e8bf748f6a1159b968180e6d0ac0b9644","src/hii.rs":"d0b19b7cc7b0c2c4d70e2891554ed6d7f941388709476eab6fa7bad129c583ed","src/lib.rs":"289fdfa8384062616aa39b49c4094b93849ff0a2e5f6d7125b40124299a0837e","src/protocols.rs":"a8f1c0d9abf2af2d7962fce68160a3bf8083165bb70861808423afedadee6602","src/protocols/absolute_pointer.rs":"46ad9792ea021f47e4fedf8d3c07769872e056c39936c9647492a52455558b41","src/protocols/block_io.rs":"4f70d38453f057bb240988d7fac593ffa0f38a0057c6e8855f34ff37801e7f3d","src/protocols/bus_specific_driver_override.rs":"a695a18e6729020919f99880fb14c2a26f565471f15d6300cb67475d33ec6087","src/protocols/debug_support.rs":"a03fc44a2ad151e58eff3bd72f910b63bfadd5802ac2fc157fc94c2030bd9fa9","src/protocols/debugport.rs":"bc491b03444ec35593a9cde519d0ab5fc863a046073dd813f1eb58c075da45dc","src/protocols/decompress.rs":"a4c67d958f0b9a392840a53eef69369acc6f545f90369685b3cae3c32e5cbc51","src/protocols/device_path.rs":"1a8c897f8e392fd7fe60d829b7852d22dd847f5f64bf1382e58e7776d9a176a2","src/protocols/device_path_from_text.rs":"e972d7699fb031df9da2c4d5623ae289d4cc282116b634218039b97d1e7628fe","src/protocols/device_path_to_text.rs":"9929d0797ab4892051bd15ac831dc2566f7106ec9edec0fd289b3c780a2b0976","src/protocols/device_path_utilities.rs":"7d7e9ba66e9f8add3c77718bd605e6e434598f2834236e7805aba57b531eba30","src/protocols/disk_io.rs":"01a68686dae958b4fbd9fd5bbc556cf41b61e7da281a0b4ea56e62e61822d843","src/protocols/disk_io2.rs":"33aeb807ab9b78534787f44e0a3a8c52afe057e23b48ecb6703195cd0b135a8e","src/protocols/driver_binding.rs":"f48363c5afd21aac39cbd2644be0e861acc4b182bc14c68a4f84e94a5f001f8d","src/protocols/driver_diagnostics2.rs":"62b0ffe6760ae0e90e51652c667ec623cef3bbd44c17fb89881a24167b1b446c","src/protocols/driver_family_override.rs":"004aceae8540766d87eb2cef9c8c37ab5aa3755920af6d960cb9171a41acb4a1","src/protocols/file.rs":"25f09f54cf3ebd69366bde5160218247c6712ae19dac17a36ec4e2881b214f93","src/protocols/graphics_output.rs":"9e9b7ac05b92ac0a9680506edb3ed36ebbac2dc9c800268b2c54cbf539e9dd9e","src/protocols/hii_database.rs":"faa82d420085dee851f8a332db00c888e7ed1685d43e2c286790a34b2ecfdf7a","src/protocols/hii_font.rs":"092f45c74335c524ee379508e2b6925ed9033c7c10928e64b2489ca3778a4723","src/protocols/hii_font_ex.rs":"2400b2092c14da2aa09c62266356321d4b96838dc41c5918a2f3e0e1e3920318","src/protocols/hii_package_list.rs":"6bb29d076697bb3b672913b98f55995f9efcba830b4ab6bfed29bd8402aa70ab","src/protocols/hii_string.rs":"1327ba9e108900ddafec98c02534c81104c3c47cad32a7d17c7b7a7ee723c86f","src/protocols/ip4.rs":"252d244ec9b098fcee6a185ffa98cbdee34164c7872fe30b07d5e8dfdf7a8fe3","src/protocols/ip6.rs":"72a51653aa4535f7b136a7bacaa1718e0a68be847d4a716c6e76b7f75a94e6ea","src/protocols/load_file.rs":"8aa4a43db3da6c71398eb9408b2be9b893eb2147e5317a0f977e998db2910cba","src/protocols/load_file2.rs":"5be9c5d501b4f10a44ba91448fce5d4a20c01eab9a8f7fb3c63eaa62cbb1c2f4","src/protocols/loaded_image.rs":"508cf1514071e611f3c70776463a19f53685b3569c52a2350f307cbeac9cbbcc","src/protocols/loaded_image_device_path.rs":"66e8fe3477785dadf96401da10e203ba729e54d7eddedaffc4d17acc9a0daf7f","src/protocols/managed_network.rs":"592111dee58137a21f3b49211baf0d9c73a14ca9de95fa31d7e87435ded3808d","src/protocols/memory_attribute.rs":"c512ae777b95248127fc39b63eb99d746aaf8a5dc2cfda167d15ea5aa627653c","src/protocols/mp_services.rs":"509e7d483df52ab1ba1f9241bb7b286ffe205c4328557b3115cd290b4c9f8278","src/protocols/pci_io.rs":"43dac18dfa284d83836ff1ccfb8e40d48ef94533b72cdb99ce30a768f70be67c","src/protocols/platform_driver_override.rs":"f0ada483bccd90f31a6f0ce8831ea00885b66ca558e34e347ec775cbc171534c","src/protocols/rng.rs":"279ce976d190889064d0159b10586bab9a2e5670368b460be4497ead523d6dda","src/protocols/service_binding.rs":"256920333ea26fabd3b62ba8a8b25068349acab6da01a807dfba3307a45d79a0","src/protocols/shell.rs":"3259b0bf2574da6b2343da0b9ce46980d296a8e6d8c2fe36df3a07d0629ad653","src/protocols/shell_dynamic_command.rs":"9c2f977fe4e0757b633de49627a9645d81c821a39e752cb329f6285d376fe52d","src/protocols/shell_parameters.rs":"fb88c63822a14dc94e96f7912fa5409f68b669105fb81459b969ec066002e352","src/protocols/simple_file_system.rs":"e3d870bdaf3ae0f0cded7817a4eda6d5dea2e0b77855cd21c7ac05046c77b564","src/protocols/simple_network.rs":"8b8c49872488cc0e759efe74c04fc65f5d7637dca7d9a0a1cedb5dafb2597acb","src/protocols/simple_text_input.rs":"d9a7e8cbf508daedaa26dc8301e52be957edfcc12be9e962b8504584aee669a8","src/protocols/simple_text_input_ex.rs":"84ccd2ff2c354c0447a9c46406ad76de018495d5f85979cf35d78b7070a8f63c","src/protocols/simple_text_output.rs":"05857880b5c0a6fb6ce83eedcc7fa25107f368950ab18a3d0ef1ed669d3456df","src/protocols/tcp4.rs":"2131cf06fd856017ea45135fb59264a43fabc3db1b7ddc90cd19c169ccdacae9","src/protocols/tcp6.rs":"98c24c43632acc60f2dc558c13a03657f93edca735435c50b9f2cc5625f7d3bb","src/protocols/timestamp.rs":"118cc4a54da4f53a4bb2fbf66cde8c433208266a22b59b4e370393f5a40c20a9","src/protocols/udp4.rs":"c4d344a40c674524383be51621a485d15ccfffaa94a1050c7a4642199fa91bf6","src/protocols/udp6.rs":"ea4ee2154e045a4e5992688e6cafed2d5a5de41f2796f5c070e739818b361550","src/system.rs":"2428de82301085a5c99b1b54411530adf2c895aa311a58c94c1b8e9eb247b18f","src/vendor.rs":"6cc53fe0e98220fe627d82c9b27f1468095358bb26634a8c19274495888138af","src/vendor/intel/console_control.rs":"03a7fdf97ab1836353266786811ac47171d1c425dcead707f5ed0e2e834873fb"},"package":"69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f"}
1
+ {"files":{".cargo_vcs_info.json":"d8d0d853429b028d5e3c7b969f7c6b77b04e17486c57fac0759eb8083a359f3f",".github/workflows/publish.yml":"431c68b9d566180134e8771ea9cb9339d72ec77c3010b4cedfd423e271dc7386",".github/workflows/rust-tests.yml":"ca7ba173da0a6510676770b103119ce57029d424afe9e1027541d529af6c7f3f","AUTHORS":"d027e91dbc9cdbb2f1190068e498bd6b61cff022b6a032b191021ba658d96111","Cargo.lock":"78ff5baf710cdea584efe5a5178a658f368a4de740bd53d8733347d004767c4c","Cargo.toml":"a021f9fb0645cc5de5770cf7f41594c1deff4b388eca933b289752aa52666829","Cargo.toml.orig":"b8e89c393831c2161b6d390bd40422910ac34f02903ad39edd85ec38d4513fef","Makefile":"b445cfadd750b564ba8ef072754a4eed5aa127f12faa6e5b15a35b748d28b6fb","NEWS.md":"e815ccc6fb453ed64d5e1b73fb4ca6204a3f8f65e3ab0afdb86da65b5209e33d","README.md":"420f65fec3ba2e89d49da51b222d2881d26959037a7b7d3794143db4bd4627b1","examples/freestanding.rs":"0be5eb60397228306aa9f8afc533e32926d210205a7359e14da903159482416d","examples/gop-query.rs":"3257c55d6ae4572db1bfcaf20bc05990ea92d46c5d292eb99c278242f1007e2c","examples/hello-world.rs":"1a398f93a54bfddaab6ba3e0145cf70496266c44b9748a11ff569a9a18063bc4","src/base.rs":"864924a118f60edcdc9eaf8bdab31879ab1143166905e6eb0657f6f08d17b9a1","src/hii.rs":"d0b19b7cc7b0c2c4d70e2891554ed6d7f941388709476eab6fa7bad129c583ed","src/lib.rs":"6215dd213f39f5180f7cfad599df1d17d50f089dc1ad0c840bc647a0bc421953","src/protocols.rs":"a8f1c0d9abf2af2d7962fce68160a3bf8083165bb70861808423afedadee6602","src/protocols/absolute_pointer.rs":"b486324e1d2e352ca15e865afe97132a4b260609541f327c041bc947b2ddcd09","src/protocols/block_io.rs":"7fc213e8c07897b9318982e1d1f8b7c492ce0c881c4cd1d38d3eb91e590585ed","src/protocols/bus_specific_driver_override.rs":"e482a908e9d5027f10e449f5039a66db035fdef18329778a5ae97a094586888a","src/protocols/debug_support.rs":"16f17179ef274ef45c65d2fc8ff5db1e2131d8b3b4c86b9b531926642009a468","src/protocols/debugport.rs":"abe5b09e2192e6b8290205538947a79f433529ba2bb57708f74ea2b6f4172f6b","src/protocols/decompress.rs":"d10500f1f155ade02164e87c42ea81e7a767f20888a1f6ef189291492196ddbc","src/protocols/device_path.rs":"1a8c897f8e392fd7fe60d829b7852d22dd847f5f64bf1382e58e7776d9a176a2","src/protocols/device_path_from_text.rs":"9a4bb364b57e3dc39b40b93e2096e82a10b3251643e81de9f2c8abd40e705005","src/protocols/device_path_to_text.rs":"b2b1325aed4a4fcf142fae8208308590f2fa53eea999bb1bf22f592bf25109eb","src/protocols/device_path_utilities.rs":"36960de844fcf2634a9180ffd621f0b9771ffb4acc364d74c34680bbf58ee224","src/protocols/disk_io.rs":"831e774ddd1a75839c5d89cd704c2d59bb0adce554eecdc8bb12e9569b7a8747","src/protocols/disk_io2.rs":"645a83979e91679036ebc90fd8ab584158055a6c8316aaf620300470aac4ba2d","src/protocols/driver_binding.rs":"60bf714b8bb5d2ed183335e1d745a7150eb59d0d59241eb29251682ec1224434","src/protocols/driver_diagnostics2.rs":"dcbcd95b327768d70637ded79140e609a36aa1369f16c58764c8d161d072e615","src/protocols/driver_family_override.rs":"42ae2f96a94ea516f9696162d12e65613f4acc3cb78831be22d868846574d231","src/protocols/file.rs":"a4136bedb02272296b2246a9b4bee1096456d4c2e078bed5d1330c77d8666a6d","src/protocols/graphics_output.rs":"7c185179a32558f506eb84402c26e3bdb8bee795c1403d493fd24c7d9c3a07a9","src/protocols/hii_database.rs":"4af0d8ab357faffd568c12f2ce8df518dd3e186c1da980fbe2198f20e3ce0ac5","src/protocols/hii_font.rs":"d8a418f8b0776cd2cce0c60b457f8c09b63aadd64e6f9ce75526ddc1c5c32b80","src/protocols/hii_font_ex.rs":"f856de80e759a9c503ce5d3cca5092ec12739ab0b157f4bac8819b5275b730e9","src/protocols/hii_package_list.rs":"6bb29d076697bb3b672913b98f55995f9efcba830b4ab6bfed29bd8402aa70ab","src/protocols/hii_string.rs":"e8e725fae9860fdcdd777a0b99e48b7e4a5f5f464827414bb0aeed139ea5b993","src/protocols/ip4.rs":"09290d2a5a2cafd2b834ce86b59917d0f25d7d16f4f329aeedc171a8147ebef7","src/protocols/ip6.rs":"511de9f36af4c320f74e424c64433a70f1bd66e8b6fc9daa0e1744a0b46b1a5d","src/protocols/load_file.rs":"e8c845eb1812c3967bb026ef60ab40826e35e6fa3185007357b19311cef67eaf","src/protocols/load_file2.rs":"5be9c5d501b4f10a44ba91448fce5d4a20c01eab9a8f7fb3c63eaa62cbb1c2f4","src/protocols/loaded_image.rs":"64447c64a0a4ac3b79263bf2564ff1a930b2424ca2fd93e37d714c16c31a7205","src/protocols/loaded_image_device_path.rs":"66e8fe3477785dadf96401da10e203ba729e54d7eddedaffc4d17acc9a0daf7f","src/protocols/managed_network.rs":"f1acc8d727fa9a1fba7b376ed093c129dd8fddc8d164ca59c201e37f276e0525","src/protocols/memory_attribute.rs":"1aa7a99ed6fd268e1921dc073634cf9346759c048f5c90bef2928ac27e56a125","src/protocols/mp_services.rs":"d98a27d29f835b011a09eafaf276dd921328dc7b676713c1c437f4adef5409a6","src/protocols/pci_io.rs":"4b7ad8d7b9ee0d5e50e09b6ca12467ec4b43dfb3e455cfdd1e6e10617e26d171","src/protocols/platform_driver_override.rs":"5eb7cbc2609b0369cf380fa54be963f331124cae3fc5fd19fe75212dba4d3d9c","src/protocols/rng.rs":"a9f4854fa54acab7e8638d37e9c0b71ce36d02fcdc37b2d43726ba9686e8a3a9","src/protocols/service_binding.rs":"7c3b7c4256499451efc922d00f021479ae743706b5ed36c86aaf55c225612675","src/protocols/shell.rs":"e9fb2ab62988067d13ee839c10aacf47d94f5e92c213e1670530fe1c472925f8","src/protocols/shell_dynamic_command.rs":"e13f152c2ca57988d1b2b476b45cd6e6dc899e76359ecb2d8e04aeb55ca480ca","src/protocols/shell_parameters.rs":"fb88c63822a14dc94e96f7912fa5409f68b669105fb81459b969ec066002e352","src/protocols/simple_file_system.rs":"019910e8f5c44ba6a98ff9848eafa31e05c32833a69fbee108f2dd322bdb1748","src/protocols/simple_network.rs":"fd12bd27444634064fe5e2308b0504d452b18092d5f6e0fcba2e35cc40998b54","src/protocols/simple_text_input.rs":"673944368289c1f11313944416512169a461a8703cef039e50e1414e291152b1","src/protocols/simple_text_input_ex.rs":"b9514fe34f105dc88b9241c88adeefc18e33cbd692acc164fa0a25dbaee24c6d","src/protocols/simple_text_output.rs":"835f5ec786c1a688384b3280dcc5f75383f7822938b9ea16c9e9b802a183d293","src/protocols/tcp4.rs":"90facae493a4a5ca192c45cc323528613398f076b5d4449ac9ad617a32217f4d","src/protocols/tcp6.rs":"cf99e4cb9cadcd9ea4ef349afbb343090cae71a1324bb4e7812834f465a5b8c6","src/protocols/timestamp.rs":"ea8e5ed87c9fce83c037038bdee5daf92946631cc41774b288e6dfc5811cb64f","src/protocols/udp4.rs":"bc85ba588df857a233132c42b7fb3418acb6d89581a5b4ab2d6156e18bb17547","src/protocols/udp6.rs":"806ed1cbd53874f8a171aa3f86fdd40f2fcaa493dc2eadb0c286d8e4d67078e8","src/system.rs":"54ebb9a3842fc62a7dd4a2240490f6563c66904a14c1f81961a3677a54d85390","src/vendor.rs":"6cc53fe0e98220fe627d82c9b27f1468095358bb26634a8c19274495888138af","src/vendor/intel/console_control.rs":"05363b80feb22aa585cbe16ec4a1c8e1ef592e8e57b1a676de0562723c729275"},"package":"f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "git": {
3
- "sha1": "97b55bed1c2c91dcbf787674849f05337ff80b33"
3
+ "sha1": "7e1b0322d31d625f81a5656096330934f9cd835d"
4
4
  },
5
5
  "path_in_vcs": ""
6
6
  }
@@ -56,6 +56,7 @@ COPYRIGHT: (ordered alphabetically)
56
56
  Copyright (C) 2022-2023 David Rheinsberg
57
57
 
58
58
  AUTHORS: (ordered alphabetically)
59
+ Alan Egerton <eggyal@gmail.com>
59
60
  Alex James <theracermaster@gmail.com>
60
61
  Ayush Singh <ayushsingh1325@gmail.com>
61
62
  Boris-Chengbiao Zhou <bobo1239@web.de>
@@ -4,7 +4,7 @@ version = 3
4
4
 
5
5
  [[package]]
6
6
  name = "r-efi"
7
- version = "5.3.0"
7
+ version = "6.0.0"
8
8
  dependencies = [
9
9
  "rustc-std-workspace-core",
10
10
  ]
@@ -13,7 +13,7 @@
13
13
  edition = "2018"
14
14
  rust-version = "1.68"
15
15
  name = "r-efi"
16
- version = "5.3.0"
16
+ version = "6.0.0"
17
17
  build = false
18
18
  autolib = false
19
19
  autobins = false
@@ -40,8 +40,6 @@ license = "MIT OR Apache-2.0 OR LGPL-2.1-or-later"
40
40
  repository = "https://github.com/r-efi/r-efi"
41
41
 
42
42
  [features]
43
- efiapi = []
44
- examples = ["native"]
45
43
  native = []
46
44
  rustc-dep-of-std = ["core"]
47
45
 
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "r-efi"
3
- version = "5.3.0"
3
+ version = "6.0.0"
4
4
 
5
5
  categories = [
6
6
  "embedded",
@@ -28,10 +28,6 @@ rust-version = "1.68"
28
28
  core = { version = '1.0.0', optional = true, package = 'rustc-std-workspace-core' }
29
29
 
30
30
  [features]
31
- # No-op for backwards compatibility.
32
- efiapi = []
33
- # Maps to `native` for backwards compatibility.
34
- examples = ['native']
35
31
  # We feature-gate all native code, since it will not link correctly, unless you
36
32
  # use a UEFI target configuration. To make `cargo test` work, we exclude all
37
33
  # these from normal runs.
@@ -1,5 +1,21 @@
1
1
  # r-efi - UEFI Reference Specification Protocol Constants and Definitions
2
2
 
3
+ ## CHANGES WITH 6.0.0:
4
+
5
+ * Change all function prototypes to use `unsafe fn`. This is a major
6
+ change, but reflects what all downstream users have already assumed.
7
+
8
+ * Drop the obsolete `efiapi` and `examples` feature flags. The former
9
+ was unused, and the latter is an alias for `native`.
10
+
11
+ * The `eficall!{}` macro is now fully inline in all of r-efi. It is
12
+ still provided for external users, but will no longer be used by
13
+ r-efi. All users are recommended to use `extern "efiapi"` directly.
14
+
15
+ Contributions from: Alan Egerton, David Rheinsberg
16
+
17
+ - Dußlingen, 2026-02-03
18
+
3
19
  ## CHANGES WITH 5.3.0:
4
20
 
5
21
  * Remove the optional dependency on `compiler-builtins`, which was
@@ -353,7 +353,7 @@ pub type VirtualAddress = u64;
353
353
  /// invocation, if invoked as an UEFI driver.
354
354
  /// In most cases it is perfectly fine to cast the pointer to a real rust reference. However, this
355
355
  /// should be an explicit decision by the caller.
356
- pub type ImageEntryPoint = eficall! {fn(Handle, *mut crate::system::SystemTable) -> Status};
356
+ pub type ImageEntryPoint = unsafe extern "efiapi" fn(Handle, *mut crate::system::SystemTable) -> Status;
357
357
 
358
358
  /// Globally Unique Identifiers
359
359
  ///
@@ -71,22 +71,37 @@
71
71
  //! pointers, we use `Option<fn ...>`.
72
72
  //!
73
73
  //! * `prefer *mut over *const`: Whenever we transpose pointers from the
74
- //! specification into Rust, we prefer `*mut` in almost all cases. `*const`
75
- //! should only be used if the underlying value is known not to be accessible
76
- //! via any other mutable pointer type. Since this is rarely the case in
77
- //! UEFI, we avoid it.
78
- //!
79
- //! The reasoning is that Rust allows coercing immutable types into `*const`
80
- //! pointers, without any explicit casting required. However, immutable Rust
81
- //! references require that no other mutable reference exists simultaneously.
82
- //! This is not a guarantee of `const`-pointers in C / UEFI, hence this
83
- //! coercion is usually ill-advised or even wrong.
84
- //!
85
- //! Lastly, note that `*mut` and `*const` and be `as`-casted in both
74
+ //! specification into Rust, we default to `*mut`. So far, there is no
75
+ //! reason to use `*const`. We prefer `*mut T`, because:
76
+ //!
77
+ //! * it is invariant over `T`, unlike `*const T`, which is covariant over
78
+ //! `T`. This variance is useful when treating the raw pointer like a
79
+ //! shared reference (which is also covariant over `T`). However, if the
80
+ //! raw pointer can be aliases by mutable pointers somewhere in the UEFI
81
+ //! stack, the variance might no longer apply. Using `*mut T` avoids this
82
+ //! default covariance, and requires callers to introduce manually if
83
+ //! desired.
84
+ //! * it cannot be automatically coerced from shared references. This
85
+ //! coercion is not necessarily correct, given that `const T *` pointers
86
+ //! in C do not share the immutability guarantee of Rust shared
87
+ //! references. By using `*mut T` an explicit pointer cast is required,
88
+ //! which we definitely want.
89
+ //! * it correctly conveys mutability to Miri Stacked Borrows. While Tree
90
+ //! Borrows do not distinguish raw pointers, Stacked Borrows do, and they
91
+ //! require a pointer to originate from a mutable reference if mutability
92
+ //! is desired.
93
+ //!
94
+ //! Lastly, note that `*mut` and `*const` can be `as`-casted in both
86
95
  //! directions without violating any Rust guarantees. Any UB concerns always
87
96
  //! stem from the safety guarantees of the surrounding code, not of the
88
97
  //! raw-pointer handling.
89
98
  //!
99
+ //! * `default to unsafe fn`: Always use `unsafe fn` for function prototypes.
100
+ //! UEFI makes no guarantees about global state, as such any implementation
101
+ //! of any UEFI prototype might introduce unsafety. Use `unsafe fn`
102
+ //! unconditionally, so the prototypes can be used for externally provided
103
+ //! code.
104
+ //!
90
105
  //! # Specification Details
91
106
  //!
92
107
  //! This section lists errata of, and general comments on, the UEFI
@@ -50,15 +50,15 @@ pub struct State {
50
50
  pub active_buttons: u32,
51
51
  }
52
52
 
53
- pub type Reset = eficall! {fn(
53
+ pub type Reset = unsafe extern "efiapi" fn(
54
54
  this: *mut Protocol,
55
55
  extended_verification: bool,
56
- ) -> crate::base::Status};
56
+ ) -> crate::base::Status;
57
57
 
58
- pub type GetState = eficall! {fn(
58
+ pub type GetState = unsafe extern "efiapi" fn(
59
59
  this: *mut Protocol,
60
60
  state: *mut State,
61
- ) -> crate::base::Status};
61
+ ) -> crate::base::Status;
62
62
 
63
63
  #[repr(C)]
64
64
  pub struct Protocol {
@@ -34,30 +34,30 @@ pub struct Media {
34
34
  pub optimal_transfer_length_granularity: u32,
35
35
  }
36
36
 
37
- pub type ProtocolReset = eficall! {fn(
37
+ pub type ProtocolReset = unsafe extern "efiapi" fn(
38
38
  *mut Protocol,
39
39
  crate::base::Boolean,
40
- ) -> crate::base::Status};
40
+ ) -> crate::base::Status;
41
41
 
42
- pub type ProtocolReadBlocks = eficall! {fn(
42
+ pub type ProtocolReadBlocks = unsafe extern "efiapi" fn(
43
43
  *mut Protocol,
44
44
  u32,
45
45
  crate::base::Lba,
46
46
  usize,
47
47
  *mut core::ffi::c_void,
48
- ) -> crate::base::Status};
48
+ ) -> crate::base::Status;
49
49
 
50
- pub type ProtocolWriteBlocks = eficall! {fn(
50
+ pub type ProtocolWriteBlocks = unsafe extern "efiapi" fn(
51
51
  *mut Protocol,
52
52
  u32,
53
53
  crate::base::Lba,
54
54
  usize,
55
55
  *mut core::ffi::c_void,
56
- ) -> crate::base::Status};
56
+ ) -> crate::base::Status;
57
57
 
58
- pub type ProtocolFlushBlocks = eficall! {fn(
58
+ pub type ProtocolFlushBlocks = unsafe extern "efiapi" fn(
59
59
  *mut Protocol,
60
- ) -> crate::base::Status};
60
+ ) -> crate::base::Status;
61
61
 
62
62
  #[repr(C)]
63
63
  pub struct Protocol {
@@ -21,10 +21,10 @@ pub const PROTOCOL_GUID: crate::base::Guid = crate::base::Guid::from_fields(
21
21
  &[0x4d, 0x7d, 0x13, 0xfb, 0x32, 0x65],
22
22
  );
23
23
 
24
- pub type ProtocolGetDriver = eficall! {fn(
24
+ pub type ProtocolGetDriver = unsafe extern "efiapi" fn(
25
25
  *mut Protocol,
26
26
  *mut crate::base::Handle,
27
- ) -> crate::base::Status};
27
+ ) -> crate::base::Status;
28
28
 
29
29
  #[repr(C)]
30
30
  pub struct Protocol {