Sounds like you’re looking for more system integration than what can reasonably be achieved with Cargo alone. While technically possible, it sounds extremely inconvenient and error-prone to manually intervene with desktop files directly in your application code
Here’s a template that provides all you need by “wrapping” Cargo inside a build performed with Meson. It also adds Flatpak support, should you ever want to distribute your app that way. Meson+Cargo+Flatpak is how practically all GNOME Rust apps are built and distributed.