feat(tvix/nix-compat-derive): Add deriver for NixDeserialize
This adds a nix-compat-derive derive crate that implements a deriver for NixDeserialize implementations. This is to reduce the amount of code needed to implement deserialization for all the types used by the Nix daemon protocol. Change-Id: I484724b550e8a1d5e9adad9555d9dc1374ae95c2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12022 Autosubmit: Brian Olsen <me@griff.name> Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
This commit is contained in:
parent
9af6920478
commit
ced05a2bb6
48 changed files with 2376 additions and 3 deletions
|
|
@ -8,9 +8,10 @@ edition = "2021"
|
|||
async = ["tokio"]
|
||||
# code emitting low-level packets used in the daemon protocol.
|
||||
wire = ["tokio", "pin-project-lite", "bytes"]
|
||||
test = []
|
||||
|
||||
# Enable all features by default.
|
||||
default = ["async", "wire"]
|
||||
default = ["async", "wire", "nix-compat-derive"]
|
||||
|
||||
[dependencies]
|
||||
bitflags = "2.4.1"
|
||||
|
|
@ -33,6 +34,11 @@ tracing = "0.1.37"
|
|||
optional = true
|
||||
version = "1.6.1"
|
||||
|
||||
[dependencies.nix-compat-derive]
|
||||
path = "../nix-compat-derive"
|
||||
optional = true
|
||||
default-features = false
|
||||
|
||||
[dependencies.tokio]
|
||||
optional = true
|
||||
version = "1.32.0"
|
||||
|
|
|
|||
|
|
@ -54,6 +54,13 @@ impl From<u16> for ProtocolVersion {
|
|||
}
|
||||
}
|
||||
|
||||
#[cfg(any(test, feature = "test"))]
|
||||
impl From<(u8, u8)> for ProtocolVersion {
|
||||
fn from((major, minor): (u8, u8)) -> Self {
|
||||
Self::from_parts(major, minor)
|
||||
}
|
||||
}
|
||||
|
||||
impl TryFrom<u64> for ProtocolVersion {
|
||||
type Error = &'static str;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue