Import memoffset from crates.io

This is generated with get_rust_pkg.py, plus
 - src/lib.rs, src/span_of.rs
 - patches/std.diff
   * Since Android does not support building with no-std, disable no-std
     and replace `core` with `std`.
 - Android.bp
 - patches/Android.bp.patch
   * remove doc-comment just to avoid one dependnecy. Can be added later.
 - TEST_MAPPING

Bug: 174797066
Test: mma
Test: tools/external_updater/updater.sh update --refresh --keep_date
      rust/crates/memoffset
Change-Id: I836d46eb71f1f0b1449318076e0eb266adbfe4c9
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..37f0f91
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,50 @@
+// This file is generated by cargo2android.py --run --device --tests --dependencies --patch=patches/Android.bp.patch.
+
+rust_library {
+    name: "libmemoffset",
+    host_supported: true,
+    crate_name: "memoffset",
+    srcs: ["src/lib.rs"],
+    edition: "2015",
+    features: ["default"],
+    flags: [
+        "--cfg allow_clippy",
+        "--cfg doctests",
+        "--cfg maybe_uninit",
+        "--cfg tuple_ty",
+    ],
+}
+
+rust_defaults {
+    name: "memoffset_defaults",
+    crate_name: "memoffset",
+    srcs: ["src/lib.rs"],
+    test_suites: ["general-tests"],
+    auto_gen_config: true,
+    edition: "2015",
+    features: ["default"],
+    flags: [
+        "--cfg allow_clippy",
+        "--cfg doctests",
+        "--cfg maybe_uninit",
+        "--cfg tuple_ty",
+    ],
+    rustlibs: [
+        // ANDROID: disable for now just to avoid another dependency.
+        //"libdoc_comment",
+    ],
+}
+
+rust_test_host {
+    name: "memoffset_host_test_src_lib",
+    defaults: ["memoffset_defaults"],
+}
+
+rust_test {
+    name: "memoffset_device_test_src_lib",
+    defaults: ["memoffset_defaults"],
+}
+
+// dependent_library ["feature_list"]
+//   autocfg-1.0.1
+//   doc-comment-0.3.3