load("@fbcode_macros//build_defs:build_file_migration.bzl", "fbcode_target", "non_fbcode_target")
load("@fbcode_macros//build_defs:cpp_library.bzl", "cpp_library")
load("@fbsource//xplat/pfh/triage_InfrastructureSupermoduleOptou:DEFS.bzl", "triage_InfrastructureSupermoduleOptou")
load("../defs.bzl", "folly_xplat_cxx_library")

oncall("fbcode_entropy_wardens_folly")

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "accumulate",
    headers = [
        "Accumulate.h",
        "Accumulate-inl.h",
    ],
    exported_deps = [
        "//folly/coro:async_generator",
        "//folly/coro:coroutine",
        "//folly/coro:task",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "accumulate",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = [
        "Accumulate.h",
        "Accumulate-inl.h",
    ],
    exported_deps = [
        "//xplat/folly/experimental/coro:async_generator",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:task",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "async_generator",
    srcs = [],
    headers = ["AsyncGenerator.h"],
    exported_deps = [
        "//folly:cancellation_token",
        "//folly:exception_wrapper",
        "//folly:traits",
        "//folly:try",
        "//folly/coro:auto_cleanup_fwd",
        "//folly/coro:coroutine",
        "//folly/coro:current_executor",
        "//folly/coro:detail_malloc",
        "//folly/coro:detail_manual_lifetime",
        "//folly/coro:invoke",
        "//folly/coro:result",
        "//folly/coro:scope_exit",
        "//folly/coro:via_if_async",
        "//folly/coro:with_async_stack",
        "//folly/coro:with_cancellation",
        "//folly/lang:safe_alias_fwd",
        "//folly/tracing:async_stack",
    ],
    exported_external_deps = [
        "glog",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "async_generator",
    srcs = [],
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["AsyncGenerator.h"],
    exported_deps = [
        "//third-party/glog:glog",
        "//xplat/folly:cancellation_token",
        "//xplat/folly:exception_wrapper",
        "//xplat/folly:traits",
        "//xplat/folly:try",
        "//xplat/folly/experimental/coro:auto_cleanup_fwd",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:current_executor",
        "//xplat/folly/experimental/coro:detail_malloc",
        "//xplat/folly/experimental/coro:detail_manual_lifetime",
        "//xplat/folly/experimental/coro:invoke",
        "//xplat/folly/experimental/coro:result",
        "//xplat/folly/experimental/coro:scope_exit",
        "//xplat/folly/experimental/coro:via_if_async",
        "//xplat/folly/experimental/coro:with_async_stack",
        "//xplat/folly/experimental/coro:with_cancellation",
        "//xplat/folly/lang:safe_alias_fwd",
        "//xplat/folly/tracing:async_stack",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "async_pipe",
    srcs = [],
    headers = ["AsyncPipe.h"],
    exported_deps = [
        "//folly:try",
        "//folly/coro:async_generator",
        "//folly/coro:coroutine",
        "//folly/coro:invoke",
        "//folly/coro:small_unbounded_queue",
        "//folly/coro:via_if_async",
        "//folly/fibers:semaphore",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "async_pipe",
    srcs = [],
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["AsyncPipe.h"],
    exported_deps = [
        "//xplat/folly:try",
        "//xplat/folly/experimental/coro:async_generator",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:invoke",
        "//xplat/folly/experimental/coro:small_unbounded_queue",
        "//xplat/folly/experimental/coro:via_if_async",
        "//xplat/folly/fibers:semaphore",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "async_scope",
    srcs = [],
    headers = ["AsyncScope.h"],
    exported_deps = [
        ":coroutine",
        ":current_executor",
        ":detail_barrier",
        ":detail_barrier_task",
        ":task",
        "//folly:cancellation_token",
        "//folly:exception_wrapper",
        "//folly/futures:core",
        "//folly/portability:source_location",
        "//folly/synchronization:relaxed_atomic",
    ],
    exported_external_deps = [
        "glog",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "async_scope",
    srcs = [],
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["AsyncScope.h"],
    exported_deps = [
        "fbsource//xplat/folly/futures:core",
        "fbsource//xplat/folly/portability:source_location",
        "//third-party/glog:glog",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:current_executor",
        "//xplat/folly/experimental/coro:detail_barrier",
        "//xplat/folly/experimental/coro:detail_barrier_task",
        "//xplat/folly/experimental/coro:task",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "async_stack",
    headers = ["AsyncStack.h"],
    exported_deps = [
        "//folly:executor",
        "//folly/coro:coroutine",
        "//folly/coro:with_async_stack",
        "//folly/tracing:async_stack",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "async_stack",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = [
        "AsyncStack.h",
    ],
    deps = [
        "//xplat/folly:executor",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:with_async_stack",
        "//xplat/folly/tracing:async_stack",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "auto_cleanup",
    headers = [
        "AutoCleanup.h",
    ],
    exported_deps = [
        "//folly/coro:auto_cleanup_fwd",
        "//folly/coro:collect",
        "//folly/coro:task",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "auto_cleanup",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = [
        "AutoCleanup.h",
    ],
    exported_deps = [
        "//xplat/folly/experimental/coro:auto_cleanup_fwd",
        "//xplat/folly/experimental/coro:collect",
        "//xplat/folly/experimental/coro:task",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "auto_cleanup_fwd",
    headers = [
        "AutoCleanup-fwd.h",
    ],
    exported_deps = [
        "//folly/coro:cleanup",
        "//folly/coro:coroutine",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "auto_cleanup_fwd",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = [
        "AutoCleanup-fwd.h",
    ],
    exported_deps = [
        "//xplat/folly/experimental/coro:cleanup",
        "//xplat/folly/experimental/coro:coroutine",
    ],
)

### this line is a hint for source control merge

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "await_result",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["AwaitResult.h"],
    exported_deps = [
        ":via_if_async",
        "//xplat/folly/result:try",
    ],
)

fbcode_target(
    _kind = cpp_library,
    name = "await_result",
    headers = ["AwaitResult.h"],
    exported_deps = [
        ":via_if_async",
        "//folly/result:try",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "baton",
    srcs = ["Baton.cpp"],
    headers = ["Baton.h"],
    deps = [
        "//folly/synchronization:atomic_util",
    ],
    exported_deps = [
        "//folly:try",
        "//folly/coro:coroutine",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "baton",
    srcs = ["Baton.cpp"],
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["Baton.h"],
    deps = [
        "fbsource//xplat/folly/synchronization:atomic_util",
        "//xplat/folly:portability",
        "//xplat/folly:try",
        "//xplat/folly/experimental/coro:coroutine",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "blocking_wait",
    headers = ["BlockingWait.h"],
    exported_deps = [
        "//folly:try",
        "//folly/coro:coroutine",
        "//folly/coro:detail_malloc",
        "//folly/coro:detail_traits",
        "//folly/coro:task",
        "//folly/coro:traits",
        "//folly/coro:via_if_async",
        "//folly/coro:with_async_stack",
        "//folly/executors:manual_executor",
        "//folly/fibers:core",
        "//folly/lang:must_use_immediately",
        "//folly/synchronization:baton",
        "//folly/tracing:async_stack",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "blocking_wait",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["BlockingWait.h"],
    exported_deps = [
        "fbsource//xplat/folly/synchronization:baton",
        "//xplat/folly:try",
        "//xplat/folly/executors:manual_executor",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:detail_malloc",
        "//xplat/folly/experimental/coro:detail_traits",
        "//xplat/folly/experimental/coro:task",
        "//xplat/folly/experimental/coro:traits",
        "//xplat/folly/experimental/coro:via_if_async",
        "//xplat/folly/experimental/coro:with_async_stack",
        "//xplat/folly/fibers:core",
        "//xplat/folly/lang:must_use_immediately",
        "//xplat/folly/tracing:async_stack",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "cleanup",
    headers = [
        "Cleanup.h",
    ],
    exported_deps = [
        "//folly/functional:invoke",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "cleanup",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = [
        "Cleanup.h",
    ],
    exported_deps = [
        "//xplat/folly/functional:invoke",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "collect",
    headers = [
        "Collect.h",
        "Collect-inl.h",
    ],
    exported_deps = [
        "//folly:cancellation_token",
        "//folly:exception_wrapper",
        "//folly:try",
        "//folly:unit",
        "//folly/container:access",
        "//folly/container:iterator",
        "//folly/coro:async_generator",
        "//folly/coro:async_pipe",
        "//folly/coro:async_scope",
        "//folly/coro:coroutine",
        "//folly/coro:detail_barrier",
        "//folly/coro:detail_barrier_task",
        "//folly/coro:detail_current_async_frame",
        "//folly/coro:detail_helpers",
        "//folly/coro:detail_traits",
        "//folly/coro:mutex",
        "//folly/coro:task",
        "//folly/coro:via_if_async",
        "//folly/coro/detail:pick_task_wrapper",
        "//folly/coro/safe:now_task",
        "//folly/coro/safe:safe_task",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "collect",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = [
        "Collect.h",
        "Collect-inl.h",
    ],
    exported_deps = [
        "//xplat/folly:cancellation_token",
        "//xplat/folly:exception_wrapper",
        "//xplat/folly:try",
        "//xplat/folly:unit",
        "//xplat/folly/container:access",
        "//xplat/folly/container:iterator",
        "//xplat/folly/coro/detail:pick_task_wrapper",
        "//xplat/folly/coro/safe:now_task",
        "//xplat/folly/coro/safe:safe_task",
        "//xplat/folly/experimental/coro:async_generator",
        "//xplat/folly/experimental/coro:async_pipe",
        "//xplat/folly/experimental/coro:async_scope",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:detail_barrier",
        "//xplat/folly/experimental/coro:detail_barrier_task",
        "//xplat/folly/experimental/coro:detail_current_async_frame",
        "//xplat/folly/experimental/coro:detail_helpers",
        "//xplat/folly/experimental/coro:detail_traits",
        "//xplat/folly/experimental/coro:mutex",
        "//xplat/folly/experimental/coro:task",
        "//xplat/folly/experimental/coro:via_if_async",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "concat",
    headers = [
        "Concat.h",
        "Concat-inl.h",
    ],
    exported_deps = [
        "//folly/coro:async_generator",
        "//folly/coro:coroutine",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "concat",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = [
        "Concat.h",
        "Concat-inl.h",
    ],
    exported_deps = [
        "//xplat/folly/experimental/coro:async_generator",
        "//xplat/folly/experimental/coro:coroutine",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "coroutine",
    headers = ["Coroutine.h"],
    exported_deps = [
        "//folly:portability",
        "//folly:utility",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "coroutine",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = [
        "Coroutine.h",
    ],
    exported_deps = [
        "//xplat/folly:portability",
        "//xplat/folly:utility",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "current_executor",
    headers = ["CurrentExecutor.h"],
    exported_deps = [
        "//folly:executor",
        "//folly/coro:coroutine",
        "//folly/coro:via_if_async",
        "//folly/coro:with_async_stack",
        "//folly/io/async:request_context",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "current_executor",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["CurrentExecutor.h"],
    exported_deps = [
        "//xplat/folly:executor",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:via_if_async",
        "//xplat/folly/experimental/coro:with_async_stack",
        "//xplat/folly/io/async:request_context",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "detach_on_cancel",
    headers = ["DetachOnCancel.h"],
    exported_deps = [
        "//folly/coro:baton",
        "//folly/coro:coroutine",
        "//folly/coro:detail_helpers",
        "//folly/coro:invoke",
        "//folly/coro:task",
        "//folly/coro:traits",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "detach_on_cancel",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["DetachOnCancel.h"],
    exported_deps = [
        "//xplat/folly/experimental/coro:baton",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:detail_helpers",
        "//xplat/folly/experimental/coro:invoke",
        "//xplat/folly/experimental/coro:task",
        "//xplat/folly/experimental/coro:traits",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "detail_barrier",
    headers = ["detail/Barrier.h"],
    exported_deps = [
        ":coroutine",
        ":traits",
        ":with_async_stack",
        "//folly/tracing:async_stack",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "detail_barrier",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["detail/Barrier.h"],
    exported_deps = [
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:traits",
        "//xplat/folly/experimental/coro:with_async_stack",
        "//xplat/folly/tracing:async_stack",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "detail_barrier_task",
    headers = ["detail/BarrierTask.h"],
    exported_deps = [
        ":coroutine",
        ":detail_barrier",
        ":detail_malloc",
        ":with_async_stack",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "detail_barrier_task",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["detail/BarrierTask.h"],
    exported_deps = [
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:detail_barrier",
        "//xplat/folly/experimental/coro:detail_malloc",
        "//xplat/folly/experimental/coro:with_async_stack",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "detail_current_async_frame",
    headers = ["detail/CurrentAsyncFrame.h"],
    exported_deps = [
        ":coroutine",
        ":with_async_stack",
        "//folly:executor",
        "//folly/tracing:async_stack",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "detail_current_async_frame",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["detail/CurrentAsyncFrame.h"],
    exported_deps = [
        "//xplat/folly:executor",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:with_async_stack",
        "//xplat/folly/tracing:async_stack",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "detail_helpers",
    headers = ["detail/Helpers.h"],
    exported_deps = [
        ":coroutine",
        "//folly:executor",
        "//folly:singleton_thread_local",
        "//folly/io/async:request_context",
        "//folly/tracing:async_stack",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "detail_helpers",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["detail/Helpers.h"],
    exported_deps = [
        "//xplat/folly:executor",
        "//xplat/folly:singleton_thread_local",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/io/async:request_context",
        "//xplat/folly/tracing:async_stack",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "detail_malloc",
    srcs = ["detail/Malloc.cpp"],
    headers = ["detail/Malloc.h"],
    deps = [
        "//folly/lang:hint",
        "//folly/lang:new",
    ],
    exported_deps = [
        "//folly:c_portability",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "detail_malloc",
    srcs = ["detail/Malloc.cpp"],
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["detail/Malloc.h"],
    deps = [
        "//xplat/folly/lang:hint",
        "//xplat/folly/lang:new",
    ],
    exported_deps = ["//xplat/folly:c_portability"],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "detail_manual_lifetime",
    headers = ["detail/ManualLifetime.h"],
    exported_deps = [
        "//folly:scope_guard",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "detail_manual_lifetime",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["detail/ManualLifetime.h"],
    exported_deps = ["//xplat/folly:scope_guard"],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "detail_traits",
    headers = ["detail/Traits.h"],
    exported_deps = [
        "//folly:traits",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "detail_traits",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["detail/Traits.h"],
    exported_deps = ["//xplat/folly:traits"],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "error",
    headers = ["Error.h"],
    exported_deps = [
        "//folly:exception_wrapper",
        "//folly:operation_cancelled",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "error",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["Error.h"],
    exported_deps = [
        "//xplat/folly:exception_wrapper",
        "//xplat/folly:operation_cancelled",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "filter",
    headers = [
        "Filter.h",
        "Filter-inl.h",
    ],
    exported_deps = [
        "//folly/coro:async_generator",
        "//folly/coro:coroutine",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "filter",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = [
        "Filter.h",
        "Filter-inl.h",
    ],
    exported_deps = [
        "//xplat/folly/experimental/coro:async_generator",
        "//xplat/folly/experimental/coro:coroutine",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "future_util",
    headers = ["FutureUtil.h"],
    exported_deps = [
        "//folly:cancellation_token",
        "//folly/coro:baton",
        "//folly/coro:coroutine",
        "//folly/coro:current_executor",
        "//folly/coro:invoke",
        "//folly/coro:task",
        "//folly/coro:traits",
        "//folly/futures:core",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "future_util",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["FutureUtil.h"],
    exported_deps = [
        "fbsource//xplat/folly/futures:core",
        "//xplat/folly:cancellation_token",
        "//xplat/folly/experimental/coro:baton",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:current_executor",
        "//xplat/folly/experimental/coro:invoke",
        "//xplat/folly/experimental/coro:task",
        "//xplat/folly/experimental/coro:traits",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "generator",
    headers = ["Generator.h"],
    exported_deps = [
        "//folly/coro:coroutine",
        "//folly/coro:invoke",
        "//folly/lang:exception",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "generator",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["Generator.h"],
    exported_deps = [
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:invoke",
        "//xplat/folly/lang:exception",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "gmock_helpers",
    headers = ["GmockHelpers.h"],
    exported_deps = [
        "//folly/coro:coroutine",
        "//folly/coro:gtest_helpers",
        "//folly/coro:result",
        "//folly/coro:task",
        "//folly/portability:gmock",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "gmock_helpers",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["GmockHelpers.h"],
    exported_deps = [
        "fbsource//xplat/folly/portability:gmock",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:gtest_helpers",
        "//xplat/folly/experimental/coro:result",
        "//xplat/folly/experimental/coro:task",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "gtest_helpers",
    headers = ["GtestHelpers.h"],
    exported_deps = [
        "//folly/coro:blocking_wait",
        "//folly/coro:coroutine",
        "//folly/coro:task",
        "//folly/debugging/exception_tracer:smart_exception_stack_trace_hooks",  # @manual
        "//folly/debugging/exception_tracer:smart_exception_tracer",
        "//folly/portability:gtest",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "gtest_helpers",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["GtestHelpers.h"],
    deps = [
        "fbsource//xplat/folly/portability:gtest",
        "//xplat/folly/debugging/exception_tracer:smart_exception_stack_trace_hooks",  # @manual
        "//xplat/folly/debugging/exception_tracer:smart_exception_tracer",
        "//xplat/folly/experimental/coro:blocking_wait",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:task",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "inline_task",
    headers = ["detail/InlineTask.h"],
    exported_deps = [
        ":coroutine",
        ":detail_malloc",
        ":with_async_stack",
        "//folly:scope_guard",
        "//folly:try",
        "//folly/lang:assume",
        "//folly/tracing:async_stack",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "inline_task",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["detail/InlineTask.h"],
    exported_deps = [
        "//xplat/folly:scope_guard",
        "//xplat/folly:try",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:detail_malloc",
        "//xplat/folly/experimental/coro:with_async_stack",
        "//xplat/folly/lang:assume",
        "//xplat/folly/tracing:async_stack",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "invoke",
    headers = ["Invoke.h"],
    exported_deps = [
        "//folly/functional:invoke",
        "//folly/lang:customization_point",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "invoke",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["Invoke.h"],
    exported_deps = [
        "//xplat/folly/functional:invoke",
        "//xplat/folly/lang:customization_point",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "merge",
    headers = [
        "Merge.h",
        "Merge-inl.h",
    ],
    exported_deps = [
        "//folly:cancellation_token",
        "//folly:executor",
        "//folly:scope_guard",
        "//folly/coro:async_generator",
        "//folly/coro:baton",
        "//folly/coro:coroutine",
        "//folly/coro:detail_barrier",
        "//folly/coro:detail_barrier_task",
        "//folly/coro:detail_current_async_frame",
        "//folly/coro:detail_helpers",
        "//folly/coro:mutex",
        "//folly/coro:task",
        "//folly/coro:via_if_async",
        "//folly/coro:with_cancellation",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "merge",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = [
        "Merge.h",
        "Merge-inl.h",
    ],
    exported_deps = [
        "//xplat/folly:cancellation_token",
        "//xplat/folly:executor",
        "//xplat/folly:scope_guard",
        "//xplat/folly/experimental/coro:async_generator",
        "//xplat/folly/experimental/coro:baton",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:detail_barrier",
        "//xplat/folly/experimental/coro:detail_barrier_task",
        "//xplat/folly/experimental/coro:detail_current_async_frame",
        "//xplat/folly/experimental/coro:detail_helpers",
        "//xplat/folly/experimental/coro:mutex",
        "//xplat/folly/experimental/coro:task",
        "//xplat/folly/experimental/coro:via_if_async",
        "//xplat/folly/experimental/coro:with_cancellation",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "mutex",
    srcs = ["Mutex.cpp"],
    headers = ["Mutex.h"],
    exported_deps = [
        "//folly:executor",
        "//folly/coro:coroutine",
        "//folly/coro:via_if_async",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "mutex",
    srcs = ["Mutex.cpp"],
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["Mutex.h"],
    deps = ["//xplat/folly:portability"],
    exported_deps = [
        "//xplat/folly:executor",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:via_if_async",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "noexcept",
    headers = ["Noexcept.h"],
    exported_deps = [
        ":task_wrapper",
        ":via_if_async",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "noexcept",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["Noexcept.h"],
    exported_deps = [
        ":task_wrapper",
        ":via_if_async",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "promise",
    headers = ["Promise.h"],
    exported_deps = [
        "//folly:cancellation_token",
        "//folly:try",
        "//folly/coro:baton",
        "//folly/coro:coroutine",
        "//folly/futures:core",
        "//folly/lang:safe_alias_fwd",
        "//folly/synchronization:relaxed_atomic",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "promise",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["Promise.h"],
    deps = [
        "fbsource//xplat/folly/futures:core",
        "//xplat/folly:cancellation_token",
        "//xplat/folly:try",
        "//xplat/folly/experimental/coro:baton",
        "//xplat/folly/experimental/coro:coroutine",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "result",
    headers = ["Result.h"],
    exported_deps = [
        ":error",
        "//folly:try",
        "//folly/result:try",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "result",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["Result.h"],
    exported_deps = [
        ":error",
        "//xplat/folly:try",
        "//xplat/folly/result:try",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "retry",
    headers = ["Retry.h"],
    exported_deps = [
        "//folly:cancellation_token",
        "//folly:constexpr_math",
        "//folly:exception_wrapper",
        "//folly:random",
        "//folly:try",
        "//folly/coro:coroutine",
        "//folly/coro:result",
        "//folly/coro:sleep",
        "//folly/coro:task",
        "//folly/coro:traits",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "retry",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["Retry.h"],
    exported_deps = [
        "//xplat/folly:cancellation_token",
        "//xplat/folly:constexpr_math",
        "//xplat/folly:exception_wrapper",
        "//xplat/folly:random",
        "//xplat/folly:try",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:result",
        "//xplat/folly/experimental/coro:sleep",
        "//xplat/folly/experimental/coro:task",
        "//xplat/folly/experimental/coro:traits",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "rust_adaptors",
    headers = ["RustAdaptors.h"],
    exported_deps = [
        "//folly:cancellation_token",
        "//folly:executor",
        "//folly:optional",
        "//folly/coro:async_generator",
        "//folly/coro:task",
        "//folly/futures:core",
        "//folly/synchronization:baton",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "scope_exit",
    headers = ["ScopeExit.h"],
    exported_deps = [
        "//folly:exception_wrapper",
        "//folly:executor",
        "//folly:scope_guard",
        "//folly/coro:coroutine",
        "//folly/coro:traits",
        "//folly/coro:via_if_async",
        "//folly/functional:invoke",
        "//folly/lang:assume",
        "//folly/lang:customization_point",
        "//folly/tracing:async_stack",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "scope_exit",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["ScopeExit.h"],
    exported_deps = [
        "//xplat/folly:exception_wrapper",
        "//xplat/folly:executor",
        "//xplat/folly:scope_guard",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:traits",
        "//xplat/folly/experimental/coro:via_if_async",
        "//xplat/folly/functional:invoke",
        "//xplat/folly/lang:assume",
        "//xplat/folly/lang:customization_point",
        "//xplat/folly/tracing:async_stack",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "serial_queue_runner",
    srcs = ["SerialQueueRunner.cpp"],
    headers = ["SerialQueueRunner.h"],
    exported_deps = [
        ":baton",
        ":task",
        "//folly:exception_wrapper",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "serial_queue_runner",
    srcs = ["SerialQueueRunner.cpp"],
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["SerialQueueRunner.h"],
    exported_deps = [
        "//xplat/folly:exception_wrapper",
        "//xplat/folly/coro:baton",
        "//xplat/folly/coro:task",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "shared_lock",
    headers = ["SharedLock.h"],
    exported_deps = [
        "//folly:portability",
        "//folly/coro:coroutine",
        "//folly/coro:task",
        "//folly/synchronization:lock",
    ],
    exported_external_deps = ["glog"],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "shared_lock",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["SharedLock.h"],
    exported_deps = [
        "fbsource//xplat/folly/synchronization:lock",
        "//third-party/glog:glog",
        "//xplat/folly:portability",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:task",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "shared_mutex",
    srcs = ["SharedMutex.cpp"],
    headers = ["SharedMutex.h"],
    exported_deps = [
        "//folly:executor",
        "//folly:spin_lock",
        "//folly:synchronized",
        "//folly/coro:coroutine",
        "//folly/coro:shared_lock",
        "//folly/coro:via_if_async",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "shared_mutex",
    srcs = ["SharedMutex.cpp"],
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["SharedMutex.h"],
    deps = ["//xplat/folly:portability"],
    exported_deps = [
        "//xplat/folly:executor",
        "//xplat/folly:spin_lock",
        "//xplat/folly:synchronized",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:shared_lock",
        "//xplat/folly/experimental/coro:via_if_async",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "shared_promise",
    headers = [
        "SharedPromise.h",
    ],
    exported_deps = [
        ":promise",
        "//folly:likely",
        "//folly:small_vector",
        "//folly:synchronized",
        "//folly:utility",
        "//folly/futures:core",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "shared_promise",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["SharedPromise.h"],
    deps = [
        "fbsource//xplat/folly/futures:core",
        ":promise",
        "//xplat/folly:likely",
        "//xplat/folly:small_vector",
        "//xplat/folly:synchronized",
        "//xplat/folly:utility",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "sleep",
    headers = [
        "Sleep.h",
        "Sleep-inl.h",
    ],
    exported_deps = [
        "//folly/coro:coroutine",
        "//folly/coro:future_util",
        "//folly/coro:task",
        "//folly/futures:core",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "sleep",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = [
        "Sleep.h",
        "Sleep-inl.h",
    ],
    exported_deps = [
        "fbsource//xplat/folly/futures:core",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:future_util",
        "//xplat/folly/experimental/coro:task",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "small_unbounded_queue",
    srcs = [],
    headers = ["SmallUnboundedQueue.h"],
    exported_deps = [
        "//folly/coro:baton",
        "//folly/coro:coroutine",
        "//folly/coro:mutex",
        "//folly/coro:task",
        "//folly/experimental/channels/detail:atomic_queue",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "small_unbounded_queue",
    srcs = [],
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["SmallUnboundedQueue.h"],
    exported_deps = [
        "//xplat/folly/experimental/channels/detail:atomic_queue",
        "//xplat/folly/experimental/coro:baton",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:mutex",
        "//xplat/folly/experimental/coro:task",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "synchronized",
    headers = ["Synchronized.h"],
    exported_deps = [
        ":shared_lock",
        ":shared_mutex",
        ":task",
        ":traits",
        "//folly:utility",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "synchronized",
    srcs = [],
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["Synchronized.h"],
    exported_deps = [
        "//xplat/folly:utility",
        "//xplat/folly/coro:shared_lock",
        "//xplat/folly/coro:shared_mutex",
        "//xplat/folly/coro:task",
        "//xplat/folly/coro:traits",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "task",
    headers = ["Task.h"],
    exported_deps = [
        "//folly:cancellation_token",
        "//folly:default_keep_alive_executor",
        "//folly:executor",
        "//folly:glog",
        "//folly:portability",
        "//folly:scope_guard",
        "//folly:traits",
        "//folly:try",
        "//folly/coro:coroutine",
        "//folly/coro:current_executor",
        "//folly/coro:detail_malloc",
        "//folly/coro:detail_traits",
        "//folly/coro:inline_task",
        "//folly/coro:invoke",
        "//folly/coro:result",
        "//folly/coro:scope_exit",
        "//folly/coro:traits",
        "//folly/coro:via_if_async",
        "//folly/coro:with_async_stack",
        "//folly/coro:with_cancellation",
        "//folly/futures:core",
        "//folly/io/async:request_context",
        "//folly/lang:assume",
        "//folly/lang:must_use_immediately",
        "//folly/lang:safe_alias_fwd",
        "//folly/result:result",
        "//folly/result:try",
        "//folly/tracing:async_stack",
    ],
    exported_external_deps = [
        "glog",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "task",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["Task.h"],
    exported_deps = [
        "fbsource//xplat/folly/futures:core",
        "//third-party/glog:glog",
        "//xplat/folly:cancellation_token",
        "//xplat/folly:default_keep_alive_executor",
        "//xplat/folly:executor",
        "//xplat/folly:glog",
        "//xplat/folly:portability",
        "//xplat/folly:scope_guard",
        "//xplat/folly:traits",
        "//xplat/folly:try",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:current_executor",
        "//xplat/folly/experimental/coro:detail_malloc",
        "//xplat/folly/experimental/coro:detail_traits",
        "//xplat/folly/experimental/coro:inline_task",
        "//xplat/folly/experimental/coro:invoke",
        "//xplat/folly/experimental/coro:result",
        "//xplat/folly/experimental/coro:scope_exit",
        "//xplat/folly/experimental/coro:traits",
        "//xplat/folly/experimental/coro:via_if_async",
        "//xplat/folly/experimental/coro:with_async_stack",
        "//xplat/folly/experimental/coro:with_cancellation",
        "//xplat/folly/io/async:request_context",
        "//xplat/folly/lang:assume",
        "//xplat/folly/lang:must_use_immediately",
        "//xplat/folly/lang:safe_alias_fwd",
        "//xplat/folly/result:result",
        "//xplat/folly/result:try",
        "//xplat/folly/tracing:async_stack",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "task_wrapper",
    headers = ["TaskWrapper.h"],
    exported_deps = [
        ":task",
        "//folly/lang:must_use_immediately",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "task_wrapper",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["TaskWrapper.h"],
    exported_deps = [
        ":task",
        "//xplat/folly/lang:must_use_immediately",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "timed_wait",
    headers = ["TimedWait.h"],
    exported_deps = [
        "//folly:optional",
        "//folly/coro:baton",
        "//folly/coro:coroutine",
        "//folly/coro:detail_helpers",
        "//folly/coro:invoke",
        "//folly/coro:task",
        "//folly/coro:traits",
        "//folly/futures:core",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "timed_wait",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["TimedWait.h"],
    exported_deps = [
        "fbsource//xplat/folly/futures:core",
        "//xplat/folly:optional",
        "//xplat/folly/experimental/coro:baton",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:detail_helpers",
        "//xplat/folly/experimental/coro:invoke",
        "//xplat/folly/experimental/coro:task",
        "//xplat/folly/experimental/coro:traits",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "timeout",
    headers = [
        "Timeout.h",
        "Timeout-inl.h",
    ],
    exported_deps = [
        "//folly:cancellation_token",
        "//folly/coro:baton",
        "//folly/coro:coroutine",
        "//folly/coro:task",
        "//folly/coro:traits",
        "//folly/coro:with_cancellation",
        "//folly/coro/detail:pick_task_wrapper",
        "//folly/coro/safe:now_task",
        "//folly/coro/safe:safe_task",
        "//folly/futures:core",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "timeout",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = [
        "Timeout.h",
        "Timeout-inl.h",
    ],
    exported_deps = [
        "fbsource//xplat/folly/futures:core",
        "//xplat/folly:cancellation_token",
        "//xplat/folly/coro/detail:pick_task_wrapper",
        "//xplat/folly/coro/safe:now_task",
        "//xplat/folly/coro/safe:safe_task",
        "//xplat/folly/experimental/coro:baton",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:task",
        "//xplat/folly/experimental/coro:traits",
        "//xplat/folly/experimental/coro:with_cancellation",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "traits",
    headers = ["Traits.h"],
    exported_deps = [
        "//folly:traits",
        "//folly/coro:coroutine",
    ],
    exported_external_deps = [],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "traits",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["Traits.h"],
    exported_deps = [
        "//xplat/folly:traits",
        "//xplat/folly/experimental/coro:coroutine",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "transform",
    headers = [
        "Transform.h",
        "Transform-inl.h",
    ],
    exported_deps = [
        "//folly:traits",
        "//folly/coro:async_generator",
        "//folly/coro:coroutine",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "transform",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = [
        "Transform.h",
        "Transform-inl.h",
    ],
    exported_deps = [
        "//xplat/folly/experimental/coro:async_generator",
        "//xplat/folly/experimental/coro:coroutine",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "bounded_queue",
    srcs = [],
    headers = ["BoundedQueue.h"],
    exported_deps = [
        "//folly:mpmc_queue",
        "//folly:producer_consumer_queue",
        "//folly/coro:task",
        "//folly/fibers:semaphore",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "bounded_queue",
    srcs = [],
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["BoundedQueue.h"],
    exported_deps = [
        "//xplat/folly:mpmc_queue",
        "//xplat/folly:producer_consumer_queue",
        "//xplat/folly/experimental/coro:task",
        "//xplat/folly/fibers:semaphore",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "unbounded_queue",
    srcs = [],
    headers = ["UnboundedQueue.h"],
    exported_deps = [
        "//folly/concurrency:unbounded_queue",
        "//folly/coro:coroutine",
        "//folly/coro:task",
        "//folly/fibers:semaphore",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "unbounded_queue",
    srcs = [],
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["UnboundedQueue.h"],
    exported_deps = [
        "//xplat/folly/concurrency:unbounded_queue",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:task",
        "//xplat/folly/fibers:semaphore",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "via_if_async",
    headers = ["ViaIfAsync.h"],
    exported_deps = [
        "//folly:executor",
        "//folly:traits",
        "//folly/coro:coroutine",
        "//folly/coro:detail_malloc",
        "//folly/coro:traits",
        "//folly/coro:with_async_stack",
        "//folly/coro:with_cancellation",
        "//folly/io/async:request_context",
        "//folly/lang:customization_point",
        "//folly/lang:must_use_immediately",
        "//folly/lang:safe_alias_fwd",
        "//folly/tracing:async_stack",
    ],
    exported_external_deps = [
        "glog",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "via_if_async",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["ViaIfAsync.h"],
    exported_deps = [
        "//third-party/glog:glog",
        "//xplat/folly:executor",
        "//xplat/folly:traits",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:detail_malloc",
        "//xplat/folly/experimental/coro:traits",
        "//xplat/folly/experimental/coro:with_async_stack",
        "//xplat/folly/experimental/coro:with_cancellation",
        "//xplat/folly/io/async:request_context",
        "//xplat/folly/lang:customization_point",
        "//xplat/folly/lang:must_use_immediately",
        "//xplat/folly/lang:safe_alias_fwd",
        "//xplat/folly/tracing:async_stack",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "with_async_stack",
    headers = ["WithAsyncStack.h"],
    exported_deps = [
        "//folly/coro:coroutine",
        "//folly/coro:traits",
        "//folly/functional:invoke",
        "//folly/lang:assume",
        "//folly/lang:customization_point",
        "//folly/tracing:async_stack",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "with_async_stack",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["WithAsyncStack.h"],
    exported_deps = [
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/experimental/coro:traits",
        "//xplat/folly/functional:invoke",
        "//xplat/folly/lang:assume",
        "//xplat/folly/lang:customization_point",
        "//xplat/folly/tracing:async_stack",
    ],
)

### this line is a hint for source control merge

fbcode_target(
    _kind = cpp_library,
    name = "with_cancellation",
    headers = ["WithCancellation.h"],
    exported_deps = [
        "//folly:cancellation_token",
        "//folly/coro:coroutine",
        "//folly/lang:customization_point",
        "//folly/lang:must_use_immediately",
    ],
)

non_fbcode_target(
    _kind = folly_xplat_cxx_library,
    name = "with_cancellation",
    feature = triage_InfrastructureSupermoduleOptou,
    raw_headers = ["WithCancellation.h"],
    exported_deps = [
        "//xplat/folly:cancellation_token",
        "//xplat/folly/experimental/coro:coroutine",
        "//xplat/folly/lang:customization_point",
        "//xplat/folly/lang:must_use_immediately",
    ],
)
