#![cfg(nix_at_least = "2.33")] use nix_bindings_bindgen_raw as raw; use std::ptr::NonNull; /// A Nix derivation /// /// **Requires Nix 2.33 or later.** pub struct Derivation { pub(crate) inner: NonNull, } impl Derivation { pub(crate) fn new_raw(inner: NonNull) -> Self { Derivation { inner } } } impl Drop for Derivation { fn drop(&mut self) { unsafe { raw::derivation_free(self.inner.as_ptr()); } } }