pyspark-arrow-rs 0.4.1

Derive macros to be used to add some helper functions to Rust structs to make them useable in Pyspark's mapInArrow
{
  description = "Rust dev environment";

  # Flake inputs
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs"; # also valid: "nixpkgs"
    flake-utils.url = "github:numtide/flake-utils";
    rust-overlay = {  
      url = "github:oxalica/rust-overlay";
      inputs = {
        nixpkgs.follows = "nixpkgs";
        flake-utils.follows = "flake-utils";
      };
    };
  };

  outputs = { self, nixpkgs, flake-utils, rust-overlay }:
    flake-utils.lib.eachDefaultSystem
      (system:
        let
          overlays = [ (import rust-overlay) ];
          pkgs = import nixpkgs {
            inherit system overlays;
          };
          buildInputs = with pkgs; 
            [ rust-analyzer
              hurl
              (rust-bin.stable.latest.default.override {
                extensions = ["rust-src"];
              })
            ] ++ 
              (if system == "aarch64-darwin" then [ darwin.apple_sdk.frameworks.Security ] 
              else []);
        in
        with pkgs;
        {
          devShells.default = mkShell {
            inherit buildInputs;
            RUST_SRC_PATH="${rust.packages.stable.rustPlatform.rustLibSrc}";
          };
        }
      ); 
}