#[task_input]Expand description
Attribute macro for declaring a TaskInput type. Emits:
unsafe impl NonLocalValue for X {}(unlesscontains_unresolved_vcsis set).impl TaskInput for Xwith a field-walkingis_transient. By defaultis_resolvedandresolve_inputuse the trait defaults (trueand a [CloneReady] future — 8 bytes, no async-fn envelope); whencontains_unresolved_vcsis set, both are emitted as field-walking implementations as well.
Default form (most types):
ⓘ
#[turbo_tasks::task_input]
#[derive(Clone, Debug, Hash, PartialEq, Eq, TraceRawVcs, Encode, Decode)]
pub struct MyTaskInput { ... }Opt out of NonLocalValue when the type contains Vc<T> fields:
ⓘ
#[turbo_tasks::task_input(contains_unresolved_vcs)]
#[derive(Clone, Debug, Hash, PartialEq, Eq, TraceRawVcs, Encode, Decode)]
pub struct VcCarrier { vc: Vc<...> }