Trait TaskInput

Source
pub trait TaskInput:
    Send
    + Sync
    + Clone
    + Debug
    + PartialEq
    + Eq
    + Hash
    + TraceRawVcs {
    // Required method
    fn is_transient(&self) -> bool;

    // Provided methods
    fn resolve_input(&self) -> impl Future<Output = Result<Self>> + Send + '_ { ... }
    fn is_resolved(&self) -> bool { ... }
}
Expand description

Trait to implement in order for a type to be accepted as a #[turbo_tasks::function] argument.

Required Methods§

Provided Methods§

Source

fn resolve_input(&self) -> impl Future<Output = Result<Self>> + Send + '_

Source

fn is_resolved(&self) -> bool

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl TaskInput for bool

Source§

impl TaskInput for i32

Source§

impl TaskInput for u8

Source§

impl TaskInput for u16

Source§

impl TaskInput for u32

Source§

impl TaskInput for u64

Source§

impl TaskInput for ()

Source§

impl TaskInput for usize

Source§

impl TaskInput for RcStr

Source§

impl TaskInput for Duration

Source§

impl<A> TaskInput for (A,)
where A: TaskInput,

Source§

fn is_resolved(&self) -> bool

Source§

fn is_transient(&self) -> bool

Source§

async fn resolve_input(&self) -> Result<Self>

Source§

impl<A, B> TaskInput for (A, B)
where A: TaskInput, B: TaskInput,

Source§

fn is_resolved(&self) -> bool

Source§

fn is_transient(&self) -> bool

Source§

async fn resolve_input(&self) -> Result<Self>

Source§

impl<A, B, C> TaskInput for (A, B, C)
where A: TaskInput, B: TaskInput, C: TaskInput,

Source§

fn is_resolved(&self) -> bool

Source§

fn is_transient(&self) -> bool

Source§

async fn resolve_input(&self) -> Result<Self>

Source§

impl<A, B, C, D> TaskInput for (A, B, C, D)
where A: TaskInput, B: TaskInput, C: TaskInput, D: TaskInput,

Source§

fn is_resolved(&self) -> bool

Source§

fn is_transient(&self) -> bool

Source§

async fn resolve_input(&self) -> Result<Self>

Source§

impl<A, B, C, D, E> TaskInput for (A, B, C, D, E)
where A: TaskInput, B: TaskInput, C: TaskInput, D: TaskInput, E: TaskInput,

Source§

fn is_resolved(&self) -> bool

Source§

fn is_transient(&self) -> bool

Source§

async fn resolve_input(&self) -> Result<Self>

Source§

impl<A, B, C, D, E, F> TaskInput for (A, B, C, D, E, F)

Source§

fn is_resolved(&self) -> bool

Source§

fn is_transient(&self) -> bool

Source§

async fn resolve_input(&self) -> Result<Self>

Source§

impl<A, B, C, D, E, F, G> TaskInput for (A, B, C, D, E, F, G)

Source§

fn is_resolved(&self) -> bool

Source§

fn is_transient(&self) -> bool

Source§

async fn resolve_input(&self) -> Result<Self>

Source§

impl<A, B, C, D, E, F, G, H> TaskInput for (A, B, C, D, E, F, G, H)

Source§

fn is_resolved(&self) -> bool

Source§

fn is_transient(&self) -> bool

Source§

async fn resolve_input(&self) -> Result<Self>

Source§

impl<A, B, C, D, E, F, G, H, I> TaskInput for (A, B, C, D, E, F, G, H, I)

Source§

fn is_resolved(&self) -> bool

Source§

fn is_transient(&self) -> bool

Source§

async fn resolve_input(&self) -> Result<Self>

Source§

impl<A, B, C, D, E, F, G, H, I, J> TaskInput for (A, B, C, D, E, F, G, H, I, J)

Source§

fn is_resolved(&self) -> bool

Source§

fn is_transient(&self) -> bool

Source§

async fn resolve_input(&self) -> Result<Self>

Source§

impl<A, B, C, D, E, F, G, H, I, J, K> TaskInput for (A, B, C, D, E, F, G, H, I, J, K)

Source§

fn is_resolved(&self) -> bool

Source§

fn is_transient(&self) -> bool

Source§

async fn resolve_input(&self) -> Result<Self>

Source§

impl<A, B, C, D, E, F, G, H, I, J, K, L> TaskInput for (A, B, C, D, E, F, G, H, I, J, K, L)

Source§

fn is_resolved(&self) -> bool

Source§

fn is_transient(&self) -> bool

Source§

async fn resolve_input(&self) -> Result<Self>

Source§

impl<L, R> TaskInput for Either<L, R>
where L: TaskInput, R: TaskInput,

Source§

fn resolve_input(&self) -> impl Future<Output = Result<Self>> + Send + '_

Source§

fn is_resolved(&self) -> bool

Source§

fn is_transient(&self) -> bool

Source§

impl<T> TaskInput for Option<T>
where T: TaskInput,

Source§

fn is_resolved(&self) -> bool

Source§

fn is_transient(&self) -> bool

Source§

async fn resolve_input(&self) -> Result<Self>

Source§

impl<T> TaskInput for Box<T>
where T: TaskInput,

Source§

fn is_resolved(&self) -> bool

Source§

fn is_transient(&self) -> bool

Source§

async fn resolve_input(&self) -> Result<Self>

Source§

impl<T> TaskInput for Arc<T>
where T: TaskInput,

Source§

fn is_resolved(&self) -> bool

Source§

fn is_transient(&self) -> bool

Source§

async fn resolve_input(&self) -> Result<Self>

Source§

impl<T> TaskInput for Vec<T>
where T: TaskInput,

Source§

fn is_resolved(&self) -> bool

Source§

fn is_transient(&self) -> bool

Source§

async fn resolve_input(&self) -> Result<Self>

Implementors§

Source§

impl TaskInput for TaskId

Source§

impl TaskInput for ValueTypeId

Source§

impl<T> TaskInput for OperationVc<T>
where T: ?Sized + Send + Sync,

Source§

impl<T> TaskInput for ResolvedVc<T>
where T: Send + Sync + ?Sized,

Source§

impl<T> TaskInput for TransientInstance<T>
where T: Sync + Send + TraceRawVcs + 'static,

Source§

impl<T> TaskInput for TransientValue<T>
where T: MagicAny + Clone + Debug + Hash + Eq + TraceRawVcs + 'static,

Source§

impl<T> TaskInput for Value<T>
where T: Any + Debug + Clone + Hash + Eq + Send + Sync + Serialize + for<'de> Deserialize<'de> + TraceRawVcs + 'static,

Source§

impl<T> TaskInput for Vc<T>
where T: Send + Sync + ?Sized,