turbopack_core/
raw_module.rs1use turbo_tasks::{ResolvedVc, Vc};
2
3use crate::{
4 ident::AssetIdent,
5 module::{Module, ModuleSideEffects},
6 source::{OptionSource, Source},
7};
8
9#[turbo_tasks::value]
12pub struct RawModule {
13 source: ResolvedVc<Box<dyn Source>>,
14}
15
16#[turbo_tasks::value_impl]
17impl Module for RawModule {
18 #[turbo_tasks::function]
19 fn ident(&self) -> Vc<AssetIdent> {
20 self.source.ident()
21 }
22
23 #[turbo_tasks::function]
24 fn source(&self) -> Vc<OptionSource> {
25 Vc::cell(Some(self.source))
26 }
27 #[turbo_tasks::function]
28 fn side_effects(self: Vc<Self>) -> Vc<ModuleSideEffects> {
29 ModuleSideEffects::SideEffectful.cell()
30 }
31}
32
33#[turbo_tasks::value_impl]
34impl RawModule {
35 #[turbo_tasks::function]
36 pub fn new(source: ResolvedVc<Box<dyn Source>>) -> Vc<RawModule> {
37 RawModule { source }.cell()
38 }
39}