{
  description = "Rust Typing Test";

  inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";

  outputs = {nixpkgs, ...}: let
    system = "x86_64-linux";
    pkgs = nixpkgs.legacyPackages.${system};
  in {
    packages.${system}.default = pkgs.rustPlatform.buildRustPackage {
      pname = "typing_rust";
      version = "1.0.0";

      src = ./.;

      cargoLock.lockFile = ./Cargo.lock;

      meta = {
        description = "Rust Typing Test";
        mainProgram = "typing_rust";
      };
    };

    devShells.${system}.default = pkgs.mkShell {
      packages = with pkgs; [
        rustc
        cargo
        rustfmt
        clippy
      ];
    };
  };
}
