Commit graph

60 commits

Author SHA1 Message Date
Taeer Bar-Yam
226639939f feat: nix_util::context::check_call!(func[...])
> I couldn't figure out a way to use () for the function call, but I didn't try that hard.

I (Robert) have also given it a shot, briefly, unsuccessfully.

While I was critical of over-engineering this, it turns out that
when we start to use `mut`, a macro is much more practical, because
it doesn't create a new scope where we need a copy of a mutable
reference, which of course is not allowed.

(cherry picked from commit a2acc93d13991da4b14a99065acd589477334d07)
2025-10-04 02:31:16 +02:00
Robert Hensing
2f3a5fb039 refact: Clean up Context interface to be safer
The mutation-based methods had some pitfalls, and we don't really
need them.

We could re-add them if we need to.

(cherry picked from commit ca92b8491d87cebf54dd2468599168fc7a16c07f)
2025-10-04 02:31:16 +02:00
Robert Hensing
93a2db836a doc: Clarify why we test call and apply and how they relate
(cherry picked from commit 17c7a8d30d1c4d99eeb84a6203ae33d2ba781edb)
2025-10-04 02:31:16 +02:00
Robert Hensing
b04d429f19 test: Make sure require_* functions force thunks
(cherry picked from commit 69b661db22e4b16fb08d322f5fede480438e2b71)
2025-10-04 02:31:16 +02:00
Robert Hensing
878b793161 test: eval_state_require_int_forces_thunk
(cherry picked from commit 90de70936a726a8ae1aaf3e9aacb9a83b8d30b72)
2025-10-04 02:31:16 +02:00
Robert Hensing
c16a9b0595 refact: Make require_attrs_select* error handling regular
(cherry picked from commit de6c6cbd462202405bc787fed02dee249cf16973)
2025-10-04 02:31:16 +02:00
Robert Hensing
61efb9b79f refact: Add Context::check_one_call(f)
This makes it easier to stick to a regular pattern and not forget
to check the context afterwards.

(cherry picked from commit 966ef3769a23075f5d660a48cf5a7307df925dbf)
2025-10-04 02:31:16 +02:00
Robert Hensing
c775792b63 fix: Do not unwrap() in require_int
(cherry picked from commit c7d2e3e02a977424634ee12015265906e18039a0)
2025-10-04 02:31:16 +02:00
Robert Hensing
22ffd20c53 refact: Use Option instead of custom ValueTypeOrThunk
This loses the custom name for "thunk", but checking thunkness is
a niche use case that I don't think we should spend much code on.

(cherry picked from commit 7bdff525c13234ce6a32ea9346292d948b0840c1)
2025-10-04 02:31:16 +02:00
Philipp
19361acb12 rename value_type_forced to value_type
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
(cherry picked from commit 3bf206a38e20109bbee9cd781e66bcd895ed95ce)
2025-10-04 02:31:16 +02:00
Philipp Zander
627b31d6c5 refact: adjust ValueType use sites
(cherry picked from commit 9d9f7d59c6df3db26f331e63c9b210f8fae19061)
2025-10-04 02:31:16 +02:00
Philipp Zander
673f80e243 refact: remove Thunk from ValueType and introduce ValueTypeOrThunk to address #30
(cherry picked from commit 97c05175b633b364686790549b11e43cfb2f1d2c)
2025-10-04 02:31:16 +02:00
Philipp Zander
d89fb1803f doc: EvalState::eval_from_string
(cherry picked from commit b1de918abddc8166973c956ec77d597dae92f928)
2025-10-04 02:31:16 +02:00
Philipp Zander
fe4d62d083 test nix_store_open's params argument
(cherry picked from commit 2cebb64daacdc612e7ff916dc32b0fe5ed89dbfc)
2025-10-04 02:31:16 +02:00
Philipp Zander
ec28176852 adjust all tests to nix_store_open's new signature
(cherry picked from commit da9bf071709bc9e48a0a02531e78b2a71a9b4eba)
2025-10-04 02:31:16 +02:00
Philipp Zander
de09abb084 support nix_store_open's params argument
(cherry picked from commit 3dd5137e33709559ffa152feb7ab508246adfb54)
2025-10-04 02:31:16 +02:00
Robert Hensing
37da6411d0 maint: Use /// for doc comments
(cherry picked from commit 4a390197f71653dda99696ed5c9cbca8c6a95a4b)
2025-10-04 02:31:16 +02:00
Philipp Zander
ffdbf49ec5 test: Add assertion in eval_state::tests::eval_state_apply
(cherry picked from commit f8ff14274b6f7accf987328928186b25f842071f)
2025-10-04 02:31:16 +02:00
Robert Hensing
78435d4ed7 feat: EvalState::new_value_apply
(cherry picked from commit f8143ae4ed7b62b86cb232f8d73e53bae30d632c)
2025-10-04 02:31:16 +02:00
Robert Hensing
1ac0f10f74 refact: Fix warning
(cherry picked from commit e9371a0838eec93a0158a408c58be1a1efd44ab2)
2025-10-04 02:30:46 +02:00
Philipp Zander
9a62664fb1 test nix_state_create's lookupPath argument
(cherry picked from commit 6e5a259f60725b632e52d4839e6e3c285d6971d4)
2025-10-04 02:30:46 +02:00
Philipp Zander
d817e86c59 feat: support nix_state_create's lookupPath argument
(cherry picked from commit 6d0906688ea40760217c2e017a4a0a61eb0fd611)
2025-10-04 02:30:46 +02:00
Robert Hensing
726e891be8 feat: eval_state::test_init
(cherry picked from commit 040982222c9eb8ea91d7174e6f2e21bbc6cda8a4)
2025-10-04 02:30:46 +02:00
Robert Hensing
4095bda02a feat: EvalState.require_attrs_select{,_opt}
(cherry picked from commit cbba454aba1a90bb862d49925edd13820b6ace1b)
2025-10-04 02:30:46 +02:00
Robert Hensing
65f411d35e maint: Move conditionally unused use
(cherry picked from commit 21e3f3f569758b6cbf668c27330675c579efff5c)
2025-10-04 02:30:46 +02:00
Robert Hensing
d38cf51c63 feat: Context.is_key_error
(cherry picked from commit f754e243852103164dbc6fdaf8c0cccb3c85cfb1)
2025-10-04 02:30:46 +02:00
Robert Hensing
49576f82e4 feat: EvalState.require_attrs_names
(cherry picked from commit 1f9fdcb3805ecf74e3c0451c11bdfae96f6f997b)
2025-10-04 02:30:46 +02:00
Robert Hensing
024ef333cb feat: EvalState.new_value_int
(cherry picked from commit aa79e4d0db7795ab059349e6f6bc764d17afe003)
2025-10-04 02:30:46 +02:00
Robert Hensing
cd5fa278eb feat: EvalState.new_value_str
(cherry picked from commit 94830e4c23ddc742eb7a70cb3e0c4cf17a1a0231)
2025-10-04 02:30:46 +02:00
Robert Hensing
52778c37e9 feat: EvalState.call
(cherry picked from commit f3aa6e523c0c5214533d0005d8c3f85a0579b1de)
2025-10-04 02:30:46 +02:00
Robert Hensing
fbbc7cb490 feat: EvalState.require_int
(cherry picked from commit 890441adf963f1a33ba75889cc9735deeefbf51c)
2025-10-04 02:30:46 +02:00
Robert Hensing
4688ccbf95 refact: Make the callback convert to Result<String> immediately
This is slightly easier to use than the previous pattern that was
always followed up by the same conversions.

(cherry picked from commit 756c080730cd4fa81d4c0e3a99688cbe8debe57f)
2025-10-04 02:30:46 +02:00
Robert Hensing
9a6ef0489e doc: Clarify ownership around StorePath::new_*
(cherry picked from commit 397f00e8eefff376759f05bd0cbaecc106c681df)
2025-10-04 02:30:46 +02:00
Robert Hensing
a2686c31b2 refact: Distribute unwrap()
This gives us better error messages in case it does go wrong.

(cherry picked from commit 0fec573d82b6c51e72183ae5a19c922a53863d5b)
2025-10-04 02:30:46 +02:00
Robert Hensing
625d17b0db doc: Explain why we might need to clear the build hook
(cherry picked from commit 52d81586c671226ab2c1bbe0e1914c11b58239da)
2025-10-04 02:30:46 +02:00
Robert Hensing
7e347314bb fix: Plug leak in EvalState::realise_string
(cherry picked from commit d9f9aa64ceb48c39c028d48680a664063d70bc23)
2025-10-04 02:30:46 +02:00
Robert Hensing
87203ef394 feat: EvalState.realise_string
(cherry picked from commit f2b1142018fd64dd45ec97f1eccf0c48cc4a8c6d)
2025-10-04 02:30:46 +02:00
Robert Hensing
6736f05a3f fix: Use function pointer for settings callback 2025-10-04 02:30:46 +02:00
Robert Hensing
daffade511 feat: nix_util::settings::set, get
(cherry picked from commit 19ed7bd655e72e10373f1afab5af214f2f47881e)
2025-10-04 02:30:46 +02:00
Robert Hensing
acb1274c08 refact: Add callback_get_vec_u8_data
Make it easier to correctly use the string callbacks.

(cherry picked from commit 32db5dfc020053c36b7a4776313ee72d7bc961dd)
2025-10-04 02:30:46 +02:00
Robert Hensing
7cc9cfbb2b fix: Update test calls for &str API change 2025-10-04 02:30:46 +02:00
Robert Hensing
eadd2827a5 refact: Accept &str in eval_from_string
(cherry picked from commit 0ce86f66801ce0a052316a742ded241c773099dd)
2025-10-04 02:30:46 +02:00
Taeer Bar-Yam
7ce6900bfd 0 as *mut _ => null_mut()
(cherry picked from commit 6a345c87760f4c657bd62c62308e33e266769087)
2025-10-04 02:30:46 +02:00
Taeer Bar-Yam
48af0f9e41 error checking tweaks
(cherry picked from commit 6ac38519b710e69a0c30eb0fe8fc5fa712168cb8)
2025-10-04 02:30:46 +02:00
Taeer Bar-Yam
c2159c8834 bindgen strip nix_ prefix
(cherry picked from commit d07ec1990015f5d12b39da40ad0cb1ef0e798642)
2025-10-04 02:30:46 +02:00
Erin van der Veen
9d26e36b85 feat: update nix input to latest master
The nix c bindings have now merged into master, with some small changes since these bindings were created.
This commit updates the input, and adjusts it to the new API.

(cherry picked from commit aa02380bfcc6221615f65152de60cf4cca3bbbbe)
2025-10-04 02:30:46 +02:00
Robert Hensing
af86728386 feat: EvalState.require_string
(cherry picked from commit ac29248e10d6e2364138d11196151a9f445b379d)
2025-10-04 02:30:46 +02:00
Robert Hensing
759577526d maint: Update get_uri to be callback based
(cherry picked from commit 1aaf9b4d764da5aa8c1297d87ad1002bf1d7a7ea)
2025-10-04 02:30:46 +02:00
Robert Hensing
dbab66b38d maint: Ignore get_uri_nixos_cache because of network access
(cherry picked from commit 89736dd18452d11b11e4581a549da1df956d81c6)
2025-10-04 02:30:46 +02:00
Robert Hensing
36ea74c707 dev: Use unwrap to see error message in test
(cherry picked from commit c1c86ebee4418d37053add884b9c1258b22dd7ed)
2025-10-04 02:30:46 +02:00