diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2022-03-08 22:03:03 +0000 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2023-05-18 00:20:24 -0400 |
commit | 9923403d90e4aa4b7a7a7c27840295ba9b659a97 (patch) | |
tree | 04d237c0f7aa486226e799e994222703b55662cf | |
parent | 684e9be8b9356f92b7882d74cba9d146fb71f850 (diff) |
Don't use `store-api.hh` in `worker-protocol.hh`
Using abstract types like can help cut down on compilation time, both
from scratch, and especially incremental builds during development. The
idea is that `worker-protocol.hh` can declare all the (de)serializers, but
only again abstract types; when code needs to use some (de)serializers, it can
include headers just for the data types it needs to (de)serialize.
`store-api.hh` in particular is a bit of a sledgehammer, and the data
types we want to serialize have their own headers.
-rw-r--r-- | src/libstore/path-info.cc | 1 | ||||
-rw-r--r-- | src/libstore/worker-protocol.hh | 10 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/libstore/path-info.cc b/src/libstore/path-info.cc index e60d7abe0..7eeda35d1 100644 --- a/src/libstore/path-info.cc +++ b/src/libstore/path-info.cc @@ -1,5 +1,6 @@ #include "path-info.hh" #include "worker-protocol.hh" +#include "store-api.hh" namespace nix { diff --git a/src/libstore/worker-protocol.hh b/src/libstore/worker-protocol.hh index 34b2fc17b..fa7202ae6 100644 --- a/src/libstore/worker-protocol.hh +++ b/src/libstore/worker-protocol.hh @@ -1,7 +1,6 @@ #pragma once ///@file -#include "store-api.hh" #include "serialise.hh" namespace nix { @@ -79,6 +78,15 @@ typedef enum { class Store; struct Source; +// items being serialized +struct DerivedPath; +struct DrvOutput; +struct Realisation; +struct BuildResult; +struct KeyedBuildResult; +enum TrustedFlag : bool; + + /** * Used to guide overloading * |