Trait TurboTasksCallApi

Source
pub trait TurboTasksCallApi: Sync + Send {
    // Required methods
    fn dynamic_call(
        &self,
        func: FunctionId,
        this: Option<RawVc>,
        arg: Box<dyn MagicAny>,
        persistence: TaskPersistence,
    ) -> RawVc;
    fn native_call(
        &self,
        func: FunctionId,
        this: Option<RawVc>,
        arg: Box<dyn MagicAny>,
        persistence: TaskPersistence,
    ) -> RawVc;
    fn trait_call(
        &self,
        trait_type: TraitTypeId,
        trait_fn_name: Cow<'static, str>,
        this: RawVc,
        arg: Box<dyn MagicAny>,
        persistence: TaskPersistence,
    ) -> RawVc;
    fn run_once(
        &self,
        future: Pin<Box<dyn Future<Output = Result<()>> + Send + 'static>>,
    ) -> TaskId;
    fn run_once_with_reason(
        &self,
        reason: StaticOrArc<dyn InvalidationReason>,
        future: Pin<Box<dyn Future<Output = Result<()>> + Send + 'static>>,
    ) -> TaskId;
    fn run_once_process(
        &self,
        future: Pin<Box<dyn Future<Output = Result<()>> + Send + 'static>>,
    ) -> TaskId;
}
Expand description

Common base trait for TurboTasksApi and TurboTasksBackendApi. Provides APIs for creating tasks from function calls.

Required Methods§

Source

fn dynamic_call( &self, func: FunctionId, this: Option<RawVc>, arg: Box<dyn MagicAny>, persistence: TaskPersistence, ) -> RawVc

Calls a native function with arguments. Resolves arguments when needed with a wrapper task.

Source

fn native_call( &self, func: FunctionId, this: Option<RawVc>, arg: Box<dyn MagicAny>, persistence: TaskPersistence, ) -> RawVc

Call a native function with arguments. All inputs must be resolved.

Source

fn trait_call( &self, trait_type: TraitTypeId, trait_fn_name: Cow<'static, str>, this: RawVc, arg: Box<dyn MagicAny>, persistence: TaskPersistence, ) -> RawVc

Calls a trait method with arguments. First input is the self object. Uses a wrapper task to resolve

Source

fn run_once( &self, future: Pin<Box<dyn Future<Output = Result<()>> + Send + 'static>>, ) -> TaskId

Source

fn run_once_with_reason( &self, reason: StaticOrArc<dyn InvalidationReason>, future: Pin<Box<dyn Future<Output = Result<()>> + Send + 'static>>, ) -> TaskId

Source

fn run_once_process( &self, future: Pin<Box<dyn Future<Output = Result<()>> + Send + 'static>>, ) -> TaskId

Implementors§

Source§

impl<B: Backend + 'static> TurboTasksCallApi for TurboTasks<B>