Use patch not feature to fix rustdoc build.

aosp/1797429 enabled a new feature to fix the rustdoc build.  This
removes that feature and instead uses a patch (which has already been
merged upstream) to fix the issue.

Test: m rustdoc
Change-Id: I2f0088625304ae4bf9fc349e0a64fe0bcf5a4c21
diff --git a/Android.bp b/Android.bp
index 62fc34d..6d64e30 100644
--- a/Android.bp
+++ b/Android.bp
@@ -45,10 +45,7 @@
     cargo_pkg_version: "0.10.0",
     srcs: ["src/lib.rs"],
     edition: "2018",
-    features: [
-        "default",
-        "validate",
-    ],
+    features: ["default"],
     rustlibs: [
         "libbase64_rust",
         "libchrono",
diff --git a/cargo2android.json b/cargo2android.json
index e24b32a..5f001a6 100644
--- a/cargo2android.json
+++ b/cargo2android.json
@@ -3,7 +3,6 @@
         "data_encoding"
     ],
     "device": true,
-    "features": "default,validate",
     "run": true
 }
 
diff --git a/patches/rustdoc.patch b/patches/rustdoc.patch
new file mode 100644
index 0000000..d6ec591
--- /dev/null
+++ b/patches/rustdoc.patch
@@ -0,0 +1,24 @@
+diff --git a/src/traits.rs b/src/traits.rs
+index bd4d070..aae96e5 100644
+--- a/src/traits.rs
++++ b/src/traits.rs
+@@ -5,7 +5,18 @@ use crate::error::X509Result;
+ ///
+ /// The returned object uses zero-copy, and so has the same lifetime as the input.
+ ///
+-/// Note that only parsing is done, not validation (see the [`Validate`](crate::validate::Validate) trait).
++#[cfg_attr(
++    feature = "validate",
++    doc = r#"
++Note that only parsing is done, not validation (see the [`Validate`](crate::validate::Validate) trait).
++"#
++)]
++#[cfg_attr(
++    not(feature = "validate"),
++    doc = r#"
++Note that only parsing is done, not validation.
++"#
++)]
+ ///
+ /// # Example
+ ///
diff --git a/src/traits.rs b/src/traits.rs
index bd4d070..aae96e5 100644
--- a/src/traits.rs
+++ b/src/traits.rs
@@ -5,7 +5,18 @@
 ///
 /// The returned object uses zero-copy, and so has the same lifetime as the input.
 ///
-/// Note that only parsing is done, not validation (see the [`Validate`](crate::validate::Validate) trait).
+#[cfg_attr(
+    feature = "validate",
+    doc = r#"
+Note that only parsing is done, not validation (see the [`Validate`](crate::validate::Validate) trait).
+"#
+)]
+#[cfg_attr(
+    not(feature = "validate"),
+    doc = r#"
+Note that only parsing is done, not validation.
+"#
+)]
 ///
 /// # Example
 ///