turbopack/transition/
full_context_transition.rs

1use turbo_tasks::{ResolvedVc, Vc};
2
3use crate::{ModuleAssetContext, transition::Transition};
4
5/// A transition that only affects the asset context.
6#[turbo_tasks::value(shared)]
7pub struct FullContextTransition {
8    module_context: ResolvedVc<ModuleAssetContext>,
9}
10
11#[turbo_tasks::value_impl]
12impl FullContextTransition {
13    #[turbo_tasks::function]
14    pub fn new(module_context: ResolvedVc<ModuleAssetContext>) -> Vc<FullContextTransition> {
15        FullContextTransition { module_context }.cell()
16    }
17}
18
19#[turbo_tasks::value_impl]
20impl Transition for FullContextTransition {
21    #[turbo_tasks::function]
22    fn process_context(
23        &self,
24        _module_asset_context: Vc<ModuleAssetContext>,
25    ) -> Vc<ModuleAssetContext> {
26        *self.module_context
27    }
28}