// Scratch directory for the shader compilers that work on files: dxc, and the
// Metal toolchain behind a runtime metallib. Source and artifact are
// written and removed around each compile, so this is transient scratch rather
// than cache -- nothing here survives a compile, and nothing here belongs in
// the project's state tree.
// One compile's working directory, removed when the returned value drops.
//
// A directory of its own per compile rather than one shared by the process: a
// run that fails part-way leaves its files for the guard rather than for the
// next compile to trip over.
pub