Just for fun I've started creating a solitaire card game based on rules my dad taught me many years ago. I'm using the FLTK GUI and have been learning a lot about how to use frames and display them. So far, I've been loading each card image (in *.png format) from disk for each card I want to display, a separate file for each card in the deck. That seems to me to be rather unwieldy (clunky?) especially looking ahead to a time when I may want to turn this into a cross-platform, stand-alone solitaire card game. Is there a conventional way that I should be handling these graphics files? Should they be embedded in my code? (I have no idea how one would do that.) Should I leave them in a special directory that will have to be installed when someone wants to play my game? I'm still in the early stages of this app and it seems to me that addressing this now rather than later might be a good idea.
It's not unusual for a game to store its assets in a folder on the side, or in some archive format. If they happen to be tiny (a small card png with a couple of colors should compress well), you could consider embedding them into the binary, like you mentioned. That requires it to be recompiled every time you change them, so it's inconvenient in other ways.
Exactly how it tends to be done depends on the type of game, its engine, etc. You will probably not need to do anything too special, so I would think it's more a matter of how you would want to package and distribute it.
In the event that you don't embed the data in your executable, then yes, you will need some directory of files, but it generally should not have to be dealt with by the user. The proper placement and handling of such a directory is entirely platform-specific, and it is closely linked to the type of packaging for distribution you are doing; the package format will specify how the files are to be included in the package and how your executable should find them when it is run.
(And Cargo does not provide anything that helps with this; Cargo considers its work to be done when the executable, alone, has been created.)