Skip to main content

turbopack_core/issue/
code_gen.rs

1use turbo_tasks::{ResolvedVc, Vc};
2use turbo_tasks_fs::FileSystemPath;
3
4use super::{
5    Issue, IssueSeverity, IssueSource, IssueStage, OptionIssueSource, OptionStyledString,
6    StyledString,
7};
8
9#[turbo_tasks::value(shared)]
10pub struct CodeGenerationIssue {
11    pub severity: IssueSeverity,
12    pub path: FileSystemPath,
13    pub title: ResolvedVc<StyledString>,
14    pub message: ResolvedVc<StyledString>,
15    /// Optional source location that points to where the issue originates
16    pub source: Option<IssueSource>,
17}
18
19#[turbo_tasks::value_impl]
20impl Issue for CodeGenerationIssue {
21    fn severity(&self) -> IssueSeverity {
22        self.severity
23    }
24
25    #[turbo_tasks::function]
26    fn title(&self) -> Vc<StyledString> {
27        *self.title
28    }
29
30    #[turbo_tasks::function]
31    fn stage(&self) -> Vc<IssueStage> {
32        IssueStage::CodeGen.cell()
33    }
34
35    #[turbo_tasks::function]
36    fn file_path(&self) -> Vc<FileSystemPath> {
37        self.path.clone().cell()
38    }
39
40    #[turbo_tasks::function]
41    fn description(&self) -> Vc<OptionStyledString> {
42        Vc::cell(Some(self.message))
43    }
44
45    #[turbo_tasks::function]
46    fn source(&self) -> Vc<OptionIssueSource> {
47        Vc::cell(self.source)
48    }
49}