Expand description
§include_optional
MSRV: 1.88
Note: This crate has a known bug in regards to proc-macro caching. If an
included file does not exist and a macro from this crate returns None, this
result is cached forever. The macro isn’t reevaluated when the file is added
later. A fix for this is currently not possible in Stable Rust.
If you are running Nightly Rust, you can enable the nightly feature. With
this, this crate makes use of the unstable track_path
feature that is necessary in
order to fix this. Otherwise, you will have to call cargo clean after
adding an included file to force reevaluation.
This crate allows you to optionally include a file as a Option. This crate supports the complete include_X! macro family (include_bytes!, include! and include_str!).
§Installation
Add this to your Cargo.toml:
[dependencies]
include_optional = "1.0"§Example
This includes some metadata from a file, falling back to default metadata if the file is missing:
use include_optional::include_str_optional;
let metadata: &'static str = include_str_optional!("./metadata_files/file_exists.txt" ).unwrap_or("default metadata string");Macros§
- include_
bytes_ optional - Wraps
include_bytes!insideOption. - include_
optional - Wraps
include!insideOption. - include_
str_ optional - Wraps
include_str!insideOption.