From f68781da1be5489892b566b050308916b4f58424 Mon Sep 17 00:00:00 2001 From: Profpatsch Date: Tue, 26 Jan 2021 14:09:21 +0100 Subject: chore(users/Profpatsch/netencode): netencode.nix -> gen.nix Change-Id: I7ccbfe863fbff65015caa8c740b80c4bb5c59dc1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2446 Reviewed-by: Profpatsch Tested-by: BuildkiteCI --- users/Profpatsch/netencode/default.nix | 4 +- users/Profpatsch/netencode/gen.nix | 65 ++++++++++++++++++++++++++++++++ users/Profpatsch/netencode/netencode.nix | 65 -------------------------------- 3 files changed, 67 insertions(+), 67 deletions(-) create mode 100644 users/Profpatsch/netencode/gen.nix delete mode 100644 users/Profpatsch/netencode/netencode.nix (limited to 'users/Profpatsch/netencode') diff --git a/users/Profpatsch/netencode/default.nix b/users/Profpatsch/netencode/default.nix index 80ff73aff5..f5f038579b 100644 --- a/users/Profpatsch/netencode/default.nix +++ b/users/Profpatsch/netencode/default.nix @@ -1,4 +1,4 @@ -{ pkgs, depot, ... }: +{ depot, pkgs, lib, ... }: let imports = { @@ -40,7 +40,7 @@ let netencode-rs = netencode-rs-common false; - gen = import ./netencode.nix; + gen = import ./gen.nix { inherit lib; }; cfg-if = pkgs.buildRustCrate { pname = "cfg-if"; diff --git a/users/Profpatsch/netencode/gen.nix b/users/Profpatsch/netencode/gen.nix new file mode 100644 index 0000000000..5f98f27f67 --- /dev/null +++ b/users/Profpatsch/netencode/gen.nix @@ -0,0 +1,65 @@ +{ lib }: +let + + netstring = tag: suffix: s: + "${tag}${toString (builtins.stringLength s)}:${s}${suffix}"; + + unit = "u,"; + + n1 = b: if b then "n1:1," else "n1:0,"; + + n = i: n: netstring "n${toString i}" "," (toString n); + i = i: n: netstring "i${toString i}" "," (toString n); + + n3 = n 3; + n6 = n 6; + n7 = n 7; + + i3 = i 3; + i6 = i 6; + i7 = i 7; + + text = netstring "t" ","; + binary = netstring "b" ","; + + tag = key: val: netstring "<" "|" key + val; + + concatStrings = builtins.concatStringsSep ""; + + record = lokv: netstring "{" "}" + (concatStrings (map ({key, val}: tag key val) lokv)); + + list = l: netstring "[" "]" (concatStrings l); + + dwim = val: + let match = { + "bool" = n1; + "int" = i6; + "string" = text; + "set" = attrs: record (lib.mapAttrsToList + (k: v: { + key = k; + val = dwim v; + }) attrs); + "list" = l: list (map dwim l); + }; + in match.${builtins.typeOf val} val; + +in { + inherit + unit + n1 + n3 + n6 + n7 + i3 + i6 + i7 + text + binary + tag + record + list + dwim + ; +} diff --git a/users/Profpatsch/netencode/netencode.nix b/users/Profpatsch/netencode/netencode.nix deleted file mode 100644 index 5f98f27f67..0000000000 --- a/users/Profpatsch/netencode/netencode.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ lib }: -let - - netstring = tag: suffix: s: - "${tag}${toString (builtins.stringLength s)}:${s}${suffix}"; - - unit = "u,"; - - n1 = b: if b then "n1:1," else "n1:0,"; - - n = i: n: netstring "n${toString i}" "," (toString n); - i = i: n: netstring "i${toString i}" "," (toString n); - - n3 = n 3; - n6 = n 6; - n7 = n 7; - - i3 = i 3; - i6 = i 6; - i7 = i 7; - - text = netstring "t" ","; - binary = netstring "b" ","; - - tag = key: val: netstring "<" "|" key + val; - - concatStrings = builtins.concatStringsSep ""; - - record = lokv: netstring "{" "}" - (concatStrings (map ({key, val}: tag key val) lokv)); - - list = l: netstring "[" "]" (concatStrings l); - - dwim = val: - let match = { - "bool" = n1; - "int" = i6; - "string" = text; - "set" = attrs: record (lib.mapAttrsToList - (k: v: { - key = k; - val = dwim v; - }) attrs); - "list" = l: list (map dwim l); - }; - in match.${builtins.typeOf val} val; - -in { - inherit - unit - n1 - n3 - n6 - n7 - i3 - i6 - i7 - text - binary - tag - record - list - dwim - ; -} -- cgit 1.4.1