ferrum_compiler/source/
mod.rs1use std::collections::HashMap;
2use std::path::PathBuf;
3use std::sync::{Arc, Mutex};
4
5#[derive(Debug, Clone)]
6pub enum FeSourcePackage {
7 File(FeSourceFile),
8 Dir(FeSourceDir),
9}
10
11#[derive(Debug, Clone)]
12pub struct FeSourceFile {
13 pub name: SourcePackageName,
14 pub path: PathBuf,
15 pub content: Arc<str>,
16}
17
18#[derive(Debug, Clone)]
19pub struct FeSourceDir {
20 pub name: SourcePackageName,
21 pub path: PathBuf,
22 pub entry_file: FeSourceFile,
23 pub local_packages: HashMap<SourcePackageName, Arc<Mutex<FeSourcePackage>>>,
24}
25
26#[derive(Debug, Clone, Hash, PartialEq, Eq)]
27pub struct SourcePackageName(pub Arc<str>);