{ lib }: let collectNixFiles = dir: lib.flatten ( lib.mapAttrsToList ( name: type: let path = dir + "/${name}"; in if type == "directory" then collectNixFiles path else if type == "regular" && lib.hasSuffix ".nix" name then [ path ] else [ ] ) (builtins.readDir dir) ); in { inherit collectNixFiles; bridgeName = id: "br-vlan${toString id}"; deriveMac = name: let hash = builtins.hashString "sha256" name; octet = i: builtins.substring (i * 2) 2 hash; in lib.concatStringsSep ":" ( [ "02" ] ++ map octet [ 0 1 2 3 4 ] ); }