sigfinn 0.2.0

Lifecycle manager for spawning tasks
Documentation
{
  description = "Sigfinn - lifecycle manager for spawning tasks";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    flake-utils.url = "github:numtide/flake-utils";
    fenix = {
      url = "github:nix-community/fenix";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = { self, nixpkgs, flake-utils, fenix }:
    (flake-utils.lib.eachDefaultSystem
      (system:
        let
          pkgs = import nixpkgs {
            inherit system;
            overlays = [
              self.overlays.default
              fenix.overlays.default
            ];
          };

          rustToolchain = with fenix.packages.${system}; combine [
            stable.rustc
            stable.cargo
            stable.clippy
            stable.rust-src
            stable.rust-std

            default.rustfmt
          ];

          cargoArgs = [
            "--workspace"
            "--bins"
            "--examples"
            "--tests"
            "--benches"
            "--all-targets"
          ];

          unitTestArgs = [
            "--workspace"
          ];

        in
        {
          formatter = pkgs.treefmt;

          devShells.default = pkgs.callPackage ./devshell {
            inherit rustToolchain cargoArgs unitTestArgs;
          };
          checks = {
            format = pkgs.callPackage ./devshell/format.nix { };
          };
        })) // {
      overlays.default = final: prev: { };
    };
}