feat(tvix/nix-compat/wire): introduce BytesWriter
This deals with writing byte packets of larger sizes to an underlying AsyncWrite. Its constructor receives the expected size. It also deals with writing padding if flush/shutdown is called after writing all the payload. Change-Id: I8acbf992467f3862ffb8c7d669e8c0c8eced14c1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11355 Reviewed-by: picnoir picnoir <picnoir@alternativebit.fr> Autosubmit: flokli <flokli@flokli.de> Reviewed-by: Brian Olsen <me@griff.name> Tested-by: BuildkiteCI
This commit is contained in:
parent
39276dc5b4
commit
f3d8c633f2
7 changed files with 555 additions and 7 deletions
1
users/picnoir/tvix-daemon/Cargo.lock
generated
1
users/picnoir/tvix-daemon/Cargo.lock
generated
|
@ -763,6 +763,7 @@ dependencies = [
|
|||
"glob",
|
||||
"nom",
|
||||
"num-traits",
|
||||
"pin-project-lite",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"sha2",
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# This file was @generated by crate2nix 0.12.0 with the command:
|
||||
# "generate"
|
||||
# This file was @generated by crate2nix 0.13.0 with the command:
|
||||
# "generate" "--all-features"
|
||||
# See https://github.com/kolloch/crate2nix for more info.
|
||||
|
||||
{ nixpkgs ? <nixpkgs>
|
||||
|
@ -2372,6 +2372,11 @@ rec {
|
|||
name = "num-traits";
|
||||
packageId = "num-traits";
|
||||
}
|
||||
{
|
||||
name = "pin-project-lite";
|
||||
packageId = "pin-project-lite";
|
||||
optional = true;
|
||||
}
|
||||
{
|
||||
name = "serde";
|
||||
packageId = "serde";
|
||||
|
@ -2403,11 +2408,12 @@ rec {
|
|||
}
|
||||
];
|
||||
features = {
|
||||
"async" = [ "futures-util" "tokio" ];
|
||||
"async" = [ "futures-util" "tokio" "pin-project-lite" ];
|
||||
"futures-util" = [ "dep:futures-util" ];
|
||||
"pin-project-lite" = [ "dep:pin-project-lite" ];
|
||||
"tokio" = [ "dep:tokio" ];
|
||||
};
|
||||
resolvedDefaultFeatures = [ "async" "futures-util" "tokio" ];
|
||||
resolvedDefaultFeatures = [ "async" "futures-util" "pin-project-lite" "tokio" ];
|
||||
};
|
||||
"nom" = rec {
|
||||
crateName = "nom";
|
||||
|
@ -5205,6 +5211,7 @@ rec {
|
|||
(
|
||||
_: {
|
||||
buildTests = true;
|
||||
release = false;
|
||||
}
|
||||
);
|
||||
# If the user hasn't set any pre/post commands, we don't want to
|
||||
|
@ -5229,6 +5236,16 @@ rec {
|
|||
# recreate a file hierarchy as when running tests with cargo
|
||||
|
||||
# the source for test data
|
||||
# It's necessary to locate the source in $NIX_BUILD_TOP/source/
|
||||
# instead of $NIX_BUILD_TOP/
|
||||
# because we compiled those test binaries in the former and not the latter.
|
||||
# So all paths will expect source tree to be there and not in the build top directly.
|
||||
# For example: $NIX_BUILD_TOP := /build in general, if you ask yourself.
|
||||
# TODO(raitobezarius): I believe there could be more edge cases if `crate.sourceRoot`
|
||||
# do exist but it's very hard to reason about them, so let's wait until the first bug report.
|
||||
mkdir -p source/
|
||||
cd source/
|
||||
|
||||
${pkgs.buildPackages.xorg.lndir}/bin/lndir ${crate.src}
|
||||
|
||||
# build outputs
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue