about summary refs log tree commit diff
path: root/users/Profpatsch/netencode
diff options
context:
space:
mode:
Diffstat (limited to 'users/Profpatsch/netencode')
-rw-r--r--users/Profpatsch/netencode/default.nix25
1 files changed, 25 insertions, 0 deletions
diff --git a/users/Profpatsch/netencode/default.nix b/users/Profpatsch/netencode/default.nix
index f5f038579be6..99cffc75b618 100644
--- a/users/Profpatsch/netencode/default.nix
+++ b/users/Profpatsch/netencode/default.nix
@@ -89,11 +89,36 @@ let
   } (builtins.readFile ./netencode-mustache.rs);
 
 
+  record-splice-env = imports.writers.rustSimple {
+    name = "record-splice-env";
+    dependencies = [
+      netencode-rs
+      depot.users.Profpatsch.execline.exec-helpers
+    ];
+  } ''
+    extern crate netencode;
+    extern crate exec_helpers;
+    use netencode::dec::{Record, ScalarAsBytes, Decoder, DecodeError};
+    fn main() {
+        let t = netencode::t_from_stdin_or_panic("record-splice-env");
+            match Record::<ScalarAsBytes>::dec(t) {
+                Ok(map) => {
+                    exec_helpers::exec_into_args(
+                        "record-splice-env",
+                        map.iter().map(|(k,v)| (k.as_bytes(), &v[..])
+                    );
+                },
+                Err(DecodeError(err)) => panic!("{}", err),
+            }
+    }
+  '';
+
 in {
   inherit
    netencode-rs
    netencode-rs-tests
    netencode-mustache
+   record-splice-env
    gen
    ;
 }