I just spent today figuring this out. Personally I made a fork of the programs.zed-editor home manager module and I’ve been using that (here if you’d like to reference it).
I also wrote up a Gram NixOS Wiki page with instructions for other ways to add the needed dependencies to build extensions. It’s structured a little weird but hopefully it’s helpful. I think I tested all of the options listed but it’s possible I missed something or there’s syntax errors. Lmk if you run into any problems.
And I believe you are correct that right now Gram does not support the auto_install_extensions config property.
If you just want to use rustup I think (though I’m not very familiar with Rust) the only clean way to set it up is undeclarative, running rustup default ${toolchain-branch}, like as it shows in the example rustup default stable, and I think you will also need clang installed or you will get a cc error iirc.