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§
Sourcefn dynamic_call(
&self,
func: FunctionId,
this: Option<RawVc>,
arg: Box<dyn MagicAny>,
persistence: TaskPersistence,
) -> RawVc
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.
Sourcefn native_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
Call a native function with arguments. All inputs must be resolved.
Sourcefn trait_call(
&self,
trait_type: TraitTypeId,
trait_fn_name: Cow<'static, str>,
this: 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
Calls a trait method with arguments. First input is the self
object.
Uses a wrapper task to resolve