From ab8f4ae7e313ea7e84b4ad44774fa47f63efdaa9 Mon Sep 17 00:00:00 2001 From: eldritch horrors Date: Wed, 11 Jun 2025 17:22:33 +0200 Subject: [PATCH] libstore: add CommonProto code for bool/unsigned/uint64_t we will need these very soon to make the daemon wires more rpc-like. Change-Id: Ib54acdff0899d70a4c9b1d00c144932c37fdff91 --- lix/libstore/common-protocol.cc | 32 ++++++++++++++++++++++++++++++++ lix/libstore/common-protocol.hh | 6 ++++++ 2 files changed, 38 insertions(+) diff --git a/lix/libstore/common-protocol.cc b/lix/libstore/common-protocol.cc index 2d1139eec..033c11912 100644 --- a/lix/libstore/common-protocol.cc +++ b/lix/libstore/common-protocol.cc @@ -10,6 +10,38 @@ namespace nix { /* protocol-agnostic definitions */ +bool CommonProto::Serialise::read(CommonProto::ReadConn conn) +{ + return readNum(conn.from); +} + +WireFormatGenerator CommonProto::Serialise::write(CommonProto::WriteConn conn, const bool & b) +{ + co_yield b; +} + +unsigned CommonProto::Serialise::read(CommonProto::ReadConn conn) +{ + return readNum(conn.from); +} + +WireFormatGenerator +CommonProto::Serialise::write(CommonProto::WriteConn conn, const unsigned & u) +{ + co_yield u; +} + +uint64_t CommonProto::Serialise::read(CommonProto::ReadConn conn) +{ + return readNum(conn.from); +} + +WireFormatGenerator +CommonProto::Serialise::write(CommonProto::WriteConn conn, const uint64_t & u) +{ + co_yield u; +} + std::string CommonProto::Serialise::read(CommonProto::ReadConn conn) { return readString(conn.from); diff --git a/lix/libstore/common-protocol.hh b/lix/libstore/common-protocol.hh index 29b270318..a88b61b9e 100644 --- a/lix/libstore/common-protocol.hh +++ b/lix/libstore/common-protocol.hh @@ -63,6 +63,12 @@ struct CommonProto [[nodiscard]] static WireFormatGenerator write(CommonProto::WriteConn conn, const T & str); \ } +template<> +DECLARE_COMMON_SERIALISER(bool); +template<> +DECLARE_COMMON_SERIALISER(unsigned); +template<> +DECLARE_COMMON_SERIALISER(uint64_t); template<> DECLARE_COMMON_SERIALISER(std::string); template<>