.zshenv é interpretado para cada invocação de shell incluindo os que executam scripts antes de ~/.zprofile (para shells de login) ou ~/.zshrc (personalização de shell interativo). Portanto, se você definir $path em ~/.zshrc ou ~/.zprofile , ele não será definido ainda quando zsh interpretar ~/.zshenv .
Aqui, parece que você deseja personalizar suas sessões de login para ter ~/.cargo/bin adicionado ao conjunto de variáveis $path e RUST_SRC_PATH .
Portanto, se zsh for seu shell de login, adicione:
typeset -U path
path+=(~/.cargo/bin)
export RUST_SRC_PATH="$(rustc --print sysroot)/lib/rustlib/src/rust/src"
Para o seu ~/.zprofile . Então, na próxima vez que você fizer login, seu ambiente deverá estar configurado corretamente.
Ou coloque essas linhas em ~/.zshenv se quiser que todas as invocações de zsh tenham esse ambiente, independentemente de terem sido iniciadas como parte de sua sessão de login ou não.