2025-10-21 23:18:33 +02:00
|
|
|
#![cfg(nix_at_least = "2.33")]
|
|
|
|
|
|
2025-10-16 00:40:52 +02:00
|
|
|
use nix_bindings_bindgen_raw as raw;
|
|
|
|
|
use std::ptr::NonNull;
|
|
|
|
|
|
|
|
|
|
/// A Nix derivation
|
2025-10-21 23:18:33 +02:00
|
|
|
///
|
|
|
|
|
/// **Requires Nix 2.33 or later.**
|
2025-10-16 00:40:52 +02:00
|
|
|
pub struct Derivation {
|
|
|
|
|
pub(crate) inner: NonNull<raw::derivation>,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Derivation {
|
|
|
|
|
pub(crate) fn new_raw(inner: NonNull<raw::derivation>) -> Self {
|
|
|
|
|
Derivation { inner }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl Drop for Derivation {
|
|
|
|
|
fn drop(&mut self) {
|
|
|
|
|
unsafe {
|
|
|
|
|
raw::derivation_free(self.inner.as_ptr());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|