1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
#[macro_export] macro_rules! from_compiled { ($file:expr) => { ConfigurationDefinitionParams::Source(ConfigurationSource::StringContent(String::from(include_str!(concat!(env!("OUT_DIR"), "/", $file))))) } } #[macro_export] macro_rules! from_str { ($json:expr) => { ConfigurationDefinitionParams::Source(ConfigurationSource::StringContent(String::from($json))) } } #[macro_export] macro_rules! from_json { ($($json:tt)+) => { ConfigurationDefinitionParams::Source(ConfigurationSource::JsonContent(json!($($json)+))) } } #[macro_export] macro_rules! from_file { ($file_path:expr) => { ConfigurationDefinitionParams::Source(ConfigurationSource::FileContent(String::from($file_path))) } } #[macro_export] macro_rules! bundle { ($bundle_key:expr, $bundle_sources:expr) => {{ let mut config_sources = Vec::new(); for bundle in $bundle_sources{ match bundle { ConfigurationDefinitionParams::Source(config_source) => config_sources.push(config_source), ConfigurationDefinitionParams::Bundle(_,_) => panic!("Nested bundle! declarations are not supported."), } } ConfigurationDefinitionParams::Bundle(String::from($bundle_key), config_sources) }} } #[macro_export] macro_rules! config { ($definition:expr) => { ConfigurationBuilder::from_definition($definition); } }