// This file is generated by cargo2android.py --run --device --features channel,default,io,memchr,sink --dependencies --tests.

rust_defaults {
    name: "futures-util_defaults",
    crate_name: "futures_util",
    // has rustc warnings
    srcs: ["src/lib.rs"],
    test_suites: ["general-tests"],
    auto_gen_config: true,
    edition: "2018",
    features: [
        "alloc",
        "async-await",
        "async-await-macro",
        "channel",
        "default",
        "futures-channel",
        "futures-io",
        "futures-macro",
        "futures-sink",
        "io",
        "memchr",
        "proc-macro-hack",
        "proc-macro-nested",
        "sink",
        "slab",
        "std",
    ],
    rustlibs: [
        "libfutures_channel",
        "libfutures_core",
        "libfutures_io",
        "libfutures_sink",
        "libfutures_task",
        "libmemchr",
        "libpin_project",
        "libpin_utils",
        "libproc_macro_nested",
        "libslab",
    ],
    proc_macros: [
        "libfutures_macro",
        "libproc_macro_hack",
    ],
}

rust_test_host {
    name: "futures-util_host_test_src_lib",
    defaults: ["futures-util_defaults"],
}

rust_test {
    name: "futures-util_device_test_src_lib",
    defaults: ["futures-util_defaults"],
}

rust_library {
    name: "libfutures_util",
    // has rustc warnings
    host_supported: true,
    crate_name: "futures_util",
    srcs: ["src/lib.rs"],
    edition: "2018",
    features: [
        "alloc",
        "async-await",
        "async-await-macro",
        "channel",
        "default",
        "futures-channel",
        "futures-io",
        "futures-macro",
        "futures-sink",
        "io",
        "memchr",
        "proc-macro-hack",
        "proc-macro-nested",
        "sink",
        "slab",
        "std",
    ],
    rustlibs: [
        "libfutures_channel",
        "libfutures_core",
        "libfutures_io",
        "libfutures_sink",
        "libfutures_task",
        "libmemchr",
        "libpin_project",
        "libpin_utils",
        "libproc_macro_nested",
        "libslab",
    ],
    proc_macros: [
        "libfutures_macro",
        "libproc_macro_hack",
    ],
}

// dependent_library ["feature_list"]
//   futures-channel-0.3.5 "alloc,std"
//   futures-core-0.3.5 "alloc,std"
//   futures-io-0.3.5 "std"
//   futures-macro-0.3.5
//   futures-sink-0.3.5
//   futures-task-0.3.5 "alloc,once_cell,std"
//   memchr-2.3.3 "default,std"
//   once_cell-1.4.0 "std"
//   pin-project-0.4.22
//   pin-project-internal-0.4.22
//   pin-utils-0.1.0
//   proc-macro-hack-0.5.16
//   proc-macro-nested-0.1.6
//   proc-macro2-1.0.18 "default,proc-macro"
//   quote-1.0.7 "default,proc-macro"
//   slab-0.4.2
//   syn-1.0.34 "clone-impls,default,derive,full,parsing,printing,proc-macro,quote,visit-mut"
//   unicode-xid-0.2.1 "default"
