git.delta.rocks / jrsonnet / refs/commits / d5b0f6a487f6

difftreelog

refactor nix-eval macro-support

loprwqwnYaroslav Bolyukin2026-03-12parent: #493bea4.patch.diff
in: trunk

3 files changed

modifiedcmds/repl-plugin-unstable/src/lib.rsdiffbeforeafterboth
1use fleet_base::primops::init_primops;1use fleet_base::primops::init_primops;
22
3/// SAFETY: expected plugin dynamic library entry point
3#[unsafe(no_mangle)]4#[unsafe(no_mangle)]
4fn nix_plugin_entry() {5fn nix_plugin_entry() {
5 init_primops();6 init_primops();
modifiedcrates/nix-eval/src/lib.rsdiffbeforeafterboth
--- a/crates/nix-eval/src/lib.rs
+++ b/crates/nix-eval/src/lib.rs
@@ -46,6 +46,14 @@
 pub mod logging;
 #[doc(hidden)]
 pub mod macros;
+
+#[doc(hidden)]
+pub mod __macro_support {
+	pub use std::collections::hash_map::HashMap;
+
+	pub use anyhow::Context;
+	pub use tokio::task::block_in_place;
+}
 pub mod util;
 
 #[allow(
modifiedcrates/nix-eval/src/macros.rsdiffbeforeafterboth
--- a/crates/nix-eval/src/macros.rs
+++ b/crates/nix-eval/src/macros.rs
@@ -18,12 +18,12 @@
 	(@obj($o:ident)) => {{}};
 	(Obj { }) => {{
 		use $crate::{nix_expr_inner};
-		let out = std::collections::hash_map::HashMap::new();
+		let out = $crate::__macro_support::HashMap::new();
 		Value::new_attrs(out)
 	}};
 	(Obj { $($tt:tt)+ }) => {{
 		use $crate::{nix_expr_inner};
-		let mut out = std::collections::hash_map::HashMap::new();
+		let mut out = $crate::__macro_support::HashMap::new();
 		nix_expr_inner!(@obj(out) $($tt)*);
 		Value::new_attrs(out)
 	}};
@@ -68,25 +68,25 @@
 #[macro_export]
 macro_rules! nix_go {
 	(@o($o:expr, $path:expr) . $var:ident $($tt:tt)*) => {{
-		nix_go!(@o(tokio::task::block_in_place(|| $o.get_field(stringify!($var))).context(concat!("getting nested ", $path))?, $path) $($tt)*)
+		nix_go!(@o($crate::__macro_support::block_in_place(|| $o.get_field(stringify!($var))).context(concat!("getting nested ", $path))?, $path) $($tt)*)
 	}};
 	(@o($o:expr, $path:expr) [ $v:expr ] $($tt:tt)*) => {{
-		nix_go!(@o(tokio::task::block_in_place(|| $o.get_field($v)).context(concat!("getting nested ", $path))?, $path) $($tt)*)
+		nix_go!(@o($crate::__macro_support::block_in_place(|| $o.get_field($v)).context(concat!("getting nested ", $path))?, $path) $($tt)*)
 	}};
 	(@o($o:expr, $path:expr) ($($var:tt)*) $($tt:tt)*) => {
-		nix_go!(@o(tokio::task::block_in_place(|| $o.call($crate::nix_expr_inner!($($var)+))).context(concat!("getting nested ", $path))?, $path) $($tt)*)
+		nix_go!(@o($crate::__macro_support::block_in_place(|| $o.call($crate::nix_expr_inner!($($var)+))).context(concat!("getting nested ", $path))?, $path) $($tt)*)
 	};
 	(@o($o:expr, $path:expr)) => {$o};
 	($field:ident $($tt:tt)+) => {{
 		use $crate::nix_go;
-		use ::anyhow::Context;
+		use $crate::__macro_support::Context;
 		let out = $field.clone();
-		nix_go!(@o(out, ::std::stringify!($($tt)*)) $($tt)*)
+		nix_go!(@o(out, stringify!($($tt)*)) $($tt)*)
 	}}
 }
 #[macro_export]
 macro_rules! nix_go_json {
 	($($tt:tt)*) => {{
-		tokio::task::block_in_place(|| $crate::nix_go!($($tt)*).as_json())?
+		$crate::__macro_support::block_in_place(|| $crate::nix_go!($($tt)*).as_json())?
 	}};
 }