hal 0.10.0

hal - the Bitcoin companion
Documentation
{
	inputs = {
		nixpkgs.url = "nixpkgs/nixos-24.05";
		flake-utils = {
			url = "github:numtide/flake-utils";
		};
		rust-overlay = {
			url = "github:oxalica/rust-overlay";
			inputs.nixpkgs.follows = "nixpkgs";
		};
	};

	outputs = { self, nixpkgs, flake-utils, rust-overlay }:
		flake-utils.lib.eachDefaultSystem (system:
			let
				lib = nixpkgs.lib;
				overlays = [ rust-overlay.overlays.default ];
				target = lib.strings.replaceStrings [ "-" ] [ "_" ] pkgs.stdenv.buildPlatform.config;
				pkgs = import nixpkgs {
					inherit system overlays;
				};

				rustDefault = pkgs.rust-bin.stable."1.84.0".default.override {
					extensions = [ "rust-src" "rust-analyzer" ];
				};
				rustMsrv = pkgs.rust-bin.stable."1.56.1".default.override {
					extensions = [ "rust-src" ];
				};
			in
			{
				devShells.default = pkgs.mkShell {
					nativeBuildInput = [ ];
					buildInputs = [
						pkgs.git
						pkgs.llvmPackages.clang
						rustDefault
					];

					LIBCLANG_PATH = "${pkgs.llvmPackages.clang-unwrapped.lib}/lib/";
				};
				devShells.msrv = pkgs.mkShell {
					nativeBuildInput = [ ];
					buildInputs = [
						pkgs.git
						pkgs.llvmPackages.clang
						rustMsrv
					];

					LIBCLANG_PATH = "${pkgs.llvmPackages.clang-unwrapped.lib}/lib/";
				};
			}
		);
}