Skip to content

Option-returning versions of include_X macros

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

EliasHolzmann/include_optional

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

include_optional


Note: This currently only works on nightly Rust. This crate depends on proc_macro::SourceFile::path(), which is not yet stabilized (additionally, there is a dependency on the unstable function std::path::Path::try_exists, however, this dependency could probably be removed without too much hassle).

If you are able to somehow avoid this dependency, pull requests are welcome!


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;

fn main() {
    let metadata:  &'static str = include_str_optional!("./metadata_files/file_exists.txt" ).unwrap_or("default metadata string");
    //...
}

About

Option-returning versions of include_X macros

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Languages