sway_core/language/
programs.rs

1use super::{lexed::LexedProgram, parsed::ParseProgram, ty::TyProgram};
2use crate::semantic_analysis::program::TypeCheckFailed;
3use sway_utils::PerformanceData;
4
5/// Contains the lexed, parsed, typed compilation stages of a program, as well
6/// as compilation metrics.
7#[derive(Clone, Debug)]
8pub struct Programs {
9    pub lexed: LexedProgram,
10    pub parsed: ParseProgram,
11    pub typed: Result<TyProgram, TypeCheckFailed>,
12    pub metrics: PerformanceData,
13}
14
15impl Programs {
16    pub fn new(
17        lexed: LexedProgram,
18        parsed: ParseProgram,
19        typed: Result<TyProgram, TypeCheckFailed>,
20        metrics: PerformanceData,
21    ) -> Programs {
22        Programs {
23            lexed,
24            parsed,
25            typed,
26            metrics,
27        }
28    }
29}