Upgrade rust/crates/protobuf-codegen to 2.22.1

Test: make
Change-Id: Ib964aed5462ba84bba67f2dec07b2ff127ae63c2
diff --git a/src/bin/protobuf-bin-gen-rust-do-not-use.rs b/src/bin/protobuf-bin-gen-rust-do-not-use.rs
index fc66d27..a6f96ca 100644
--- a/src/bin/protobuf-bin-gen-rust-do-not-use.rs
+++ b/src/bin/protobuf-bin-gen-rust-do-not-use.rs
@@ -6,12 +6,12 @@
 use std::path::Path;
 
 use protobuf::descriptor::*;
-use protobuf::parse_from_reader;
+use protobuf::Message;
 use protobuf_codegen::*;
 
 fn write_file(bin: &str) {
     let mut is = File::open(&Path::new(bin)).unwrap();
-    let fds = parse_from_reader::<FileDescriptorSet>(&mut is as &mut dyn Read).unwrap();
+    let fds = FileDescriptorSet::parse_from_reader(&mut is as &mut dyn Read).unwrap();
 
     let file_names: Vec<String> = fds
         .get_file()
diff --git a/src/code_writer.rs b/src/code_writer.rs
index 8b53bc6..f6d4c07 100644
--- a/src/code_writer.rs
+++ b/src/code_writer.rs
@@ -58,7 +58,7 @@
         self.write_line("#![allow(clippy::all)]");
         self.write_line("");
         self.write_line("#![allow(unused_attributes)]");
-        self.write_line("#![rustfmt::skip]");
+        self.write_line("#![cfg_attr(rustfmt, rustfmt::skip)]");
         self.write_line("");
         self.write_line("#![allow(box_pointers)]");
         self.write_line("#![allow(dead_code)]");
diff --git a/src/enums.rs b/src/enums.rs
index 18dcbec..c2ce241 100644
--- a/src/enums.rs
+++ b/src/enums.rs
@@ -170,7 +170,11 @@
             w.comment("Note: you cannot use pattern matching for enums with allow_alias option");
         }
         w.derive(&derive);
-        serde::write_serde_attr(w, &self.customize, "derive(Serialize, Deserialize)");
+        serde::write_serde_attr(
+            w,
+            &self.customize,
+            "derive(::serde::Serialize, ::serde::Deserialize)",
+        );
         let ref type_name = self.type_name;
         w.expr_block(&format!("pub enum {}", type_name), |w| {
             for value in self.values_all() {
diff --git a/src/field/mod.rs b/src/field/mod.rs
index cbe99ee..842f01f 100644
--- a/src/field/mod.rs
+++ b/src/field/mod.rs
@@ -63,7 +63,7 @@
 }
 
 fn field_type_wire_type(field_type: FieldDescriptorProto_Type) -> wire_format::WireType {
-    use protobuf::stream::wire_format::*;
+    use protobuf::wire_format::*;
     match field_type {
         FieldDescriptorProto_Type::TYPE_INT32 => WireTypeVarint,
         FieldDescriptorProto_Type::TYPE_INT64 => WireTypeVarint,
diff --git a/src/lib.rs b/src/lib.rs
index 859fa5e..3458957 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -192,7 +192,7 @@
     {
         let mut w = CodeWriter::new(&mut v);
 
-        w.write_generated_by("rust-protobuf", "2.20.0");
+        w.write_generated_by("rust-protobuf", "2.22.1");
         w.write_line(&format!("//! Generated file from `{}`", file.get_name()));
         if customize.inside_protobuf != Some(true) {
             w.write_line("");
diff --git a/src/message.rs b/src/message.rs
index e39ff36..6987ce7 100644
--- a/src/message.rs
+++ b/src/message.rs
@@ -501,7 +501,11 @@
             derive.push("Debug");
         }
         w.derive(&derive);
-        serde::write_serde_attr(w, &self.customize, "derive(Serialize, Deserialize)");
+        serde::write_serde_attr(
+            w,
+            &self.customize,
+            "derive(::serde::Serialize, ::serde::Deserialize)",
+        );
         w.pub_struct(&self.type_name.to_string(), |w| {
             if !self.fields_except_oneof().is_empty() {
                 w.comment("message fields");
diff --git a/src/oneof.rs b/src/oneof.rs
index 82aba7d..e767709 100644
--- a/src/oneof.rs
+++ b/src/oneof.rs
@@ -181,7 +181,11 @@
     pub fn write_enum(&self, w: &mut CodeWriter) {
         let derive = vec!["Clone", "PartialEq", "Debug"];
         w.derive(&derive);
-        serde::write_serde_attr(w, &self.customize, "derive(Serialize, Deserialize)");
+        serde::write_serde_attr(
+            w,
+            &self.customize,
+            "derive(::serde::Serialize, ::serde::Deserialize)",
+        );
         w.pub_enum(&self.type_name.to_code(&self.customize), |w| {
             for variant in self.variants_except_group() {
                 w.write_line(&format!(