pub struct Derivation {
pub drv_path: PathBuf,
pub outputs: HashMap<String, PathBuf>,
}
Expand description
Represents a nix build output derivation
Fields§
§drv_path: PathBuf
Derivation path
outputs: HashMap<String, PathBuf>
List of outputs for this derivation
Example outputs: out
, dev
Implementations§
Source§impl Derivation
impl Derivation
Sourcepub fn out(&self) -> Option<&PathBuf>
pub fn out(&self) -> Option<&PathBuf>
Examples found in repository?
examples/hello.rs (line 9)
3fn main() {
4 let outputs = nix::Config::new()
5 .target_flake("nixpkgs#hello")
6 .build()
7 .expect("nix build to work");
8
9 let hello = outputs[0].out().expect("default output to be available");
10
11 let stdout = std::process::Command::new(format!("{}/bin/hello", hello.display().to_string()))
12 .output()
13 .expect("hello to succeed")
14 .stdout;
15
16 let stdout = std::str::from_utf8(&stdout).expect("stdout to be UTF-8");
17 assert!(stdout == "Hello, world!\n");
18
19 print!("{}", stdout);
20}
Trait Implementations§
Source§impl Debug for Derivation
impl Debug for Derivation
Source§impl<'de> Deserialize<'de> for Derivation
impl<'de> Deserialize<'de> for Derivation
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for Derivation
impl RefUnwindSafe for Derivation
impl Send for Derivation
impl Sync for Derivation
impl Unpin for Derivation
impl UnwindSafe for Derivation
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more