InternedString { inner: s }
}
- pub fn to_inner(&self) -> &'static str {
- unsafe {
- let slice = slice::from_raw_parts(self.ptr, self.len);
- str::from_utf8_unchecked(slice)
- }
+
+ pub fn as_str(&self) -> &'static str {
+ self.inner
}
}
),
_ => {}
}
- self.require_value(&fv)?;
+ self.require_value(fv)?;
}
Ok(())
}
// and creates FeatureValues for each feature.
fn build_feature_map(
features: BTreeMap<String, Vec<String>>,
- dependencies: &Vec<Dependency>,
+ dependencies: &[Dependency],
) -> CargoResult<FeatureMap> {
use self::FeatureValue::*;
let mut map = BTreeMap::new();
// Find data for the referenced dependency...
let dep_data = {
- let dep_name = match &val {
- &Feature(_) => "",
- &Crate(ref dep_name) | &CrateFeature(ref dep_name, _) => dep_name,
+ let dep_name = match val {
+ Feature(_) => "",
+ Crate(ref dep_name) | CrateFeature(ref dep_name, _) => dep_name,
};
dependencies.iter().find(|d| *d.name() == *dep_name)
};
(json.len() >> 8) as u8,
(json.len() >> 16) as u8,
(json.len() >> 24) as u8,
- ].iter()
- .map(|x| *x),
+ ].iter().cloned(),
);
- w.extend(json.as_bytes().iter().map(|x| *x));
+ w.extend(json.as_bytes().iter().cloned());
w.extend(
[
(stat.len() >> 0) as u8,
(stat.len() >> 8) as u8,
(stat.len() >> 16) as u8,
(stat.len() >> 24) as u8,
- ].iter()
- .map(|x| *x),
+ ].iter().cloned(),
);
w
};
let body = handle(&mut self.handle, &mut |buf| body.read(buf).unwrap_or(0))?;
- let response = if body.len() > 0 {
- body.parse::<serde_json::Value>()?
- } else {
+ let response = if body.is_empty() {
"{}".parse()?
+ } else {
+ body.parse::<serde_json::Value>()?
};
let invalid_categories: Vec<String> = response
Ok(body) => body,
Err(..) => bail!("response body was not valid utf-8"),
};
- match serde_json::from_str::<ApiErrorList>(&body) {
- Ok(errors) => {
- let errors = errors.errors.into_iter().map(|s| s.detail);
- bail!("api errors: {}", errors.collect::<Vec<_>>().join(", "))
- }
- Err(..) => {}
+ if let Ok(errors) = serde_json::from_str::<ApiErrorList>(&body) {
+ let errors = errors.errors.into_iter().map(|s| s.detail);
+ bail!("api errors: {}", errors.collect::<Vec<_>>().join(", "));
}
Ok(body)
}
}
#[test]
-#[should_panic(expected = "assertion failed: name.len() > 0")]
+#[should_panic(expected = "assertion failed: !name.is_empty()")]
fn test_dependency_with_empty_name() {
// Bug 5229, dependency-names must not be empty
"".to_dep();