{ description = "core-lending"; inputs = { nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; flake-parts.url = "github:hercules-ci/flake-parts"; rust-overlay = { url = "github:oxalica/rust-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } { systems = [ "x86_64-linux" "aarch64-darwin" ]; perSystem = { self', pkgs, system, ... }: let rustVersion = "1.86.0"; rust = pkgs.rust-bin.stable.${rustVersion}; rustPlatform = pkgs.makeRustPlatform { rustc = rust.minimal; cargo = rust.minimal; }; cargoToml = builtins.fromTOML (builtins.readFile ./Cargo.toml); in { _module.args.pkgs = import inputs.nixpkgs { inherit system; overlays = [ inputs.rust-overlay.overlays.default ]; }; packages.default = rustPlatform.buildRustPackage { pname = cargoToml.package.name; version = cargoToml.package.version; src = ./.; cargoLock = { lockFile = ./Cargo.lock; }; }; devShells.default = pkgs.mkShell { buildInputs = [ pkgs.diesel-cli pkgs.elmPackages.elm pkgs.elmPackages.elm-language-server pkgs.postgresql_17 (rust.default.override { extensions = [ "rust-analyzer" "rust-src" ]; }) ]; shellHook = '' export LANG="en_US.UTF-8" ''; }; }; }; }