mod cfg_expr;
-use std::iter::IntoIterator;
-
use ra_syntax::SmolStr;
use rustc_hash::FxHashSet;
pub fn insert_key_value(&mut self, key: SmolStr, value: SmolStr) {
self.key_values.insert((key, value));
}
-
- /// Shortcut to set features
- pub fn insert_features(&mut self, iter: impl IntoIterator<Item = SmolStr>) {
- iter.into_iter().for_each(|feat| self.insert_key_value("feature".into(), feat));
- }
-
- /// Shortcut to set cfgs
- pub fn insert_cfgs(&mut self, iter: impl IntoIterator<Item = SmolStr>) {
- iter.into_iter().for_each(|cfg| match cfg.find('=') {
- Some(split) => self
- .insert_key_value(cfg[0..split].into(), cfg[split + 1..].trim_matches('"').into()),
- None => self.insert_atom(cfg),
- });
- }
}
let edition = cargo[pkg].edition;
let cfg_options = {
let mut opts = default_cfg_options.clone();
- opts.insert_features(cargo[pkg].features.iter().map(Into::into));
- opts.insert_cfgs(cargo[pkg].cfgs.iter().map(Into::into));
+ for feature in cargo[pkg].features.iter() {
+ opts.insert_key_value("feature".into(), feature.into());
+ }
+ for cfg in cargo[pkg].cfgs.iter() {
+ match cfg.find('=') {
+ Some(split) => opts.insert_key_value(
+ cfg[..split].into(),
+ cfg[split + 1..].trim_matches('"').into(),
+ ),
+ None => opts.insert_atom(cfg.into()),
+ };
+ }
opts
};
let mut env = Env::default();