message: fix(depcheck): check for simple and detailed dep reps
diff: //! Reading and writing Cargo.toml and package.json manifests.
  +use std::collections::HashMap;
  use std::fs::File;
  use std::io::prelude::*;
  use std::path::Path;
  @@ -15,7 +16,7 @@ use PBAR;
  #[derive(Deserialize)]
  struct CargoManifest {
  package: CargoPackage,
  - dependencies: Option<CargoDependencies>,
  + dependencies: Option<HashMap<String, CargoDependency>>,
  lib: Option<CargoLib>,
  }
  @@ -30,11 +31,15 @@ struct CargoPackage {
  }
  #[derive(Deserialize)]
  -struct CargoDependencies {
  - #[serde(rename = "wasm-bindgen")]
  - wasm_bindgen: Option<String>,
  +#[serde(untagged)]
  +enum CargoDependency {
  + Simple(String),
  + Detailed(DetailedCargoDependency),
  }
  +#[derive(Deserialize)]
  +struct DetailedCargoDependency {}
  +
  #[derive(Deserialize)]
  struct CargoLib {
  #[serde(rename = "crate-type")]
  @@ -177,9 +182,11 @@ pub fn check_crate_config(path: &Path, step: &Step) -> Result<(), Error> {
  }
  fn check_wasm_bindgen(path: &Path) -> Result<(), Error> {
  - if read_cargo_toml(path)?.dependencies.map_or(false, |x| {
  - !x.wasm_bindgen.unwrap_or("".to_string()).is_empty()
  - }) {
  + let cargo_toml = read_cargo_toml(path)?;
  + if cargo_toml
  + .dependencies
  + .map_or(false, |deps| deps.contains_key("wasm-bindgen"))
  + {
  return Ok(());
  }
  Error::crate_config(&format!(
  