diff --git a/tvix/nix-compat/src/nix_daemon/types.rs b/tvix/nix-compat/src/nix_daemon/types.rs index 33b74f375..db7d26321 100644 --- a/tvix/nix-compat/src/nix_daemon/types.rs +++ b/tvix/nix-compat/src/nix_daemon/types.rs @@ -1,5 +1,3 @@ -use nix_compat_derive::{NixDeserialize, NixSerialize}; - use crate::{ narinfo::Signature, nixhash::CAHash, @@ -9,6 +7,8 @@ use crate::{ ser::{NixSerialize, NixWrite}, }, }; +use nix_compat_derive::{NixDeserialize, NixSerialize}; +use std::future::Future; /// Marker type that consumes/sends and ignores a u64. #[derive(Clone, Debug, NixDeserialize, NixSerialize)] @@ -128,13 +128,14 @@ impl NixDeserialize for StorePath { // Custom implementation since Display does not use absolute paths. impl NixSerialize for StorePath where - S: AsRef + Sync, + S: AsRef, { - async fn serialize(&self, writer: &mut W) -> Result<(), W::Error> + fn serialize(&self, writer: &mut W) -> impl Future> + Send where W: NixWrite, { - writer.write_value(&self.to_absolute_path()).await + let sp = self.to_absolute_path(); + async move { writer.write_value(&sp).await } } }