Can this be restructured to avoid the duplication of these two cases?  Maybe something like:    ```rust  let maybe_pkg_id = PackageId::new(dep.package_name(), &version[1..], source.source_id());  let is_yanked = maybe_pkg_id.map_or(false, |pkg_id| source.is_yanked(pkg_id).unwrap_or(false));  if is_yanked {      // ...yanked error  } else {      // ...not found error  }  ```  