// This file is generated by cargo2android.py --run --dependencies --device --no-host --tests --patch=patches/Android.bp.patch.
// Do not modify this file as changes will be overridden on upgrade.

rust_test {
    name: "android_logger_device_test_src_lib",
    crate_name: "android_logger",
    srcs: ["src/lib.rs"],
    test_suites: ["general-tests"],
    auto_gen_config: true,
    edition: "2015",
    features: [
        "default",
        "regex",
    ],
    rustlibs: [
        "libandroid_log_sys",
        "libenv_logger",
        "liblazy_static",
        "liblog_rust",
    ],
}

rust_library {
    name: "libandroid_logger",
    crate_name: "android_logger",
    srcs: ["src/lib.rs"],
    edition: "2015",
    features: [
        "default",
        "regex",
    ],
    rustlibs: [
        "libandroid_log_sys",
        "libenv_logger",
        "liblazy_static",
        "liblog_rust",
    ],
    apex_available: [
        "//apex_available:platform",
        "com.android.virt",
    ],
}

// dependent_library ["feature_list"]
//   aho-corasick-0.7.15 "default,std"
//   android_log-sys-0.2.0
//   cfg-if-1.0.0
//   env_logger-0.7.1 "regex"
//   lazy_static-1.4.0
//   log-0.4.14 "std"
//   memchr-2.3.4 "default,std,use_std"
//   regex-1.4.4 "aho-corasick,default,memchr,perf,perf-cache,perf-dfa,perf-inline,perf-literal,std,unicode,unicode-age,unicode-bool,unicode-case,unicode-gencat,unicode-perl,unicode-script,unicode-segment"
//   regex-syntax-0.6.23 "default,unicode,unicode-age,unicode-bool,unicode-case,unicode-gencat,unicode-perl,unicode-script,unicode-segment"
