Skip to main content

task_input

Attribute Macro task_input 

Source
#[task_input]
Expand description

Attribute macro for declaring a TaskInput type. Emits:

  • unsafe impl NonLocalValue for X {} (unless contains_unresolved_vcs is set).
  • impl TaskInput for X with a field-walking is_transient. By default is_resolved and resolve_input use the trait defaults (true and a [CloneReady] future — 8 bytes, no async-fn envelope); when contains_unresolved_vcs is 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<...> }