1pub use hax_lib_macros::{
5 attributes, ensures, exclude, impl_fn_decoration, include, lemma, loop_invariant, opaque,
6 opaque_type, refinement_type, requires, trait_fn_decoration, transparent,
7};
8
9pub use hax_lib_macros::{
10 process_init, process_read, process_write, protocol_messages, pv_constructor, pv_handwritten,
11};
12
13macro_rules! export_quoting_proc_macros {
14 ($backend:ident($expr_name:ident, $expr_unsafe_name:ident, $before_name:ident, $after_name:ident, $replace_name:ident, $cfg_name:ident $(, {$($extra:tt)+})?)) => {
15 pub use hax_lib_macros::$expr_name as $backend;
16 #[doc(hidden)]
17 pub use hax_lib_macros::$expr_unsafe_name;
18
19 #[doc=concat!("Procedural macros for ", stringify!($backend))]
20 pub mod $backend {
21 pub use hax_lib_macros::$after_name as after;
22 pub use hax_lib_macros::$before_name as before;
23 pub use hax_lib_macros::$replace_name as replace;
24 $($($extra)*)?
25 }
26 };
27
28 ($backend:ident $payload:tt $($others:tt)+) => {
29 export_quoting_proc_macros!($backend$payload);
30 export_quoting_proc_macros!($($others)+);
31 }
32}
33
34export_quoting_proc_macros!(
35 fstar(fstar_expr, fstar_unsafe_expr, fstar_before, fstar_after, fstar_replace, hax_backend_fstar, {
36 pub use hax_lib_macros::fstar_options as options;
37 pub use hax_lib_macros::fstar_verification_status as verification_status;
38 })
39
40 coq(coq_expr, coq_unsafe_expr, coq_before, coq_after, coq_replace, hax_backend_coq)
41
42 proverif(proverif_expr, proverif_unsafe_expr, proverif_before, proverif_after, proverif_replace, hax_backend_proverif));