wallust 3.1.0

Generate a 16 color scheme based on an image.
Documentation
{
  description = "Wallust, a better pywal";

  # Nixpkgs / NixOS version to use.
  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
    fenix.url = "github:nix-community/fenix/monthly";
    flake-parts = {
      url = "github:hercules-ci/flake-parts";
      inputs.nixpkgs-lib.follows = "nixpkgs";
    };
    flake-compat = {
      url = "github:edolstra/flake-compat";
      flake = false;
    };
  };

  outputs = {
    self,
    nixpkgs,
    flake-parts,
    flake-compat,
    ...
  } @ inputs:
    flake-parts.lib.mkFlake {inherit inputs;} {
      # can be extended, but these have proper binary cache support in nixpkgs
      # as of writing.
      systems = [
        "aarch64-linux"
        "x86_64-linux"
      ];

      perSystem = {
        self',
        config,
        pkgs,
        ...
      }: let
        toolchain = inputs.fenix.packages.${pkgs.system}.minimal.toolchain;
      in {
        packages.default = config.packages.wallust;
        packages.wallust = pkgs.callPackage ./build.nix {
          rustPlatform = pkgs.makeRustPlatform {
            cargo = toolchain;
            rustc = toolchain;
          };
        };

        formatter = pkgs.alejandra;

        devShells.default = pkgs.mkShell {
          inputsFrom = [config.packages.default];
        };
      };
    };

  # Allows the user to use nix-community cache when using `nix run <thisFlake>`.
  nixConfig = {
    extra-substituters = ["https://nix-community.cachix.org"];
    extra-trusted-public-keys = [
      "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
    ];
  };
}