pub fn res(relative_path: impl AsRef<Path>) -> PathBuf
Expand description
Gets a path relative to the package resources.
- The res dir can be set by
init_res
before any env dir is used. - In Android returns
android_internal("res")
, assumes the package assets are extracted to this directory. - In Linux, macOS and Windows if a file
bin/current_exe_name.res-dir
is found the first non-empty and non-comment (#) line defines the res path. - In
cfg(debug_assertions)
builds returnsres
. - In Wasm returns
./res
, as in the relative URL. - In macOS returns
bin("../Resources")
, assumes the package is deployed using a desktop.app
folder. - In all other Unix systems returns
bin("../share/current_exe_name")
, assumes the package is deployed using a Debian package. - In Windows returns
bin("../res")
. Note that there is no Windows standard, make sure to install the project using this structure.
§Built Resources
In cfg(any(debug_assertions, feature="built_res"))
builds if the target/res/{relative_path}
path exists it
is returned instead. This is useful during development when the app depends on res that are generated locally and not
included in version control.
Note that the built resources must be packaged with the other res at the same relative location, so that release builds can find them.
§Android
Unfortunately Android does not provide file system access to the bundled resources, you must use the ndk::asset::AssetManager
to
request files that are decompressed on demand from the APK file. We recommend extracting all cross-platform assets once on startup
to avoid having to implement special Android handling for each resource usage. See android_install_res
for more details.