{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; lladios.url = "github:llakala/lladios"; # Optional. A consumer wanting rust-overlay-backed Rust toolchains # overrides this in their own flake. rust-overlay.follows = "nixpkgs"; }; outputs = { self, nixpkgs, lladios, rust-overlay, }: let systems = ["x86_64-linux" "aarch64-linux" "aarch64-darwin"]; forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f system nixpkgs.legacyPackages.${system}); mkRustBin = rust-overlay.lib.mkRustBin or null; withLangs = import ./with-langs.nix { inherit nixpkgs mkRustBin; inherit (lladios) adios; }; in withLangs { languages = forAllSystems (_: pkgs: { nix = { enable = true; formatter.package = pkgs.alejandra; }; }); lib = forAllSystems (system: pkgs: import ./lib { inherit pkgs; inherit (lladios) adios; rustOverlay = if mkRustBin == null then null else mkRustBin {} pkgs; }) // {inherit withLangs;}; checks = forAllSystems ( system: pkgs: import ./tests { inherit pkgs withLangs; inherit (self.lib.${system}) mkLangs; } ); }; }