[rust] Tolerate not having a crate in crate_id_to_info

Host-only deps can be in this state.

Testing: built
Change-Id: I1f70815d017f37d9382d1d956bfbe3be14449d8b
diff --git a/rust/compile_3p_crates.py b/rust/compile_3p_crates.py
index b723bd9..ad9a03e 100755
--- a/rust/compile_3p_crates.py
+++ b/rust/compile_3p_crates.py
@@ -224,15 +224,16 @@
         if package["name"] == "fuchsia-third-party":
             for crate_id in package["dependencies"]:
                 crate_id = pathless_crate_id(crate_id)
-                crate_info = crate_id_to_info[crate_id]
-                crate_name = crate_info["crate_name"]
-                package_name = package_name_from_crate_id(crate_id)
-                if package_name in cargo_dependencies:
-                    crate_info["cargo_dependency_toml"] = cargo_dependencies[package_name]
-                    crates[package_name] = crate_info
-                elif package_name not in other_target_deps:
-                    print (package_name + " not found in Cargo.toml dependencies section")
-                    return 1
+                if crate_id in crate_id_to_info:
+                    crate_info = crate_id_to_info[crate_id]
+                    crate_name = crate_info["crate_name"]
+                    package_name = package_name_from_crate_id(crate_id)
+                    if package_name in cargo_dependencies:
+                        crate_info["cargo_dependency_toml"] = cargo_dependencies[package_name]
+                        crates[package_name] = crate_info
+                    elif package_name not in other_target_deps:
+                        print (package_name + " not found in Cargo.toml dependencies section")
+                        return 1
 
     # normalize paths for patches
     patches = cargo_toml["patch"]["crates-io"]