{
  inputs ? import ../../inputs.nix {},
  rustPlatform ? null,
}:

self: super:

let
  nixos-cosmic = inputs.cosmic-modules;

  # Pinned unstable nixpkgs from cosmic-modules
  cosmicModulesLock = builtins.fromJSON (builtins.readFile "${nixos-cosmic}/flake.lock");
  pinnedNixpkgsRev = cosmicModulesLock.nodes.nixpkgs.locked.rev;
  pinnedNixpkgsNarHash = cosmicModulesLock.nodes.nixpkgs.locked.narHash;

  futureNixpkgsSrc = builtins.fetchTarball {
    name = "nixpkgs";
    url = "https://github.com/NixOS/nixpkgs/archive/${pinnedNixpkgsRev}.tar.gz";
    sha256 = pinnedNixpkgsNarHash;
  };

  # Initialize pinned nixpkgs
  futureNixpkgs = import futureNixpkgsSrc {
    localSystem = self.stdenv.buildPlatform;
    config = self.config;
  } // (if self.stdenv.buildPlatform == self.stdenv.hostPlatform then {} else {
    crossSystem = self.stdenv.hostPlatform;
  });
in

import "${nixos-cosmic}/pkgs" {
  final = self;
  prev = super;
  rustPlatform = if rustPlatform != null then rustPlatform else futureNixpkgs.rustPlatform;
}