ferrum_compiler/source/
mod.rs

1use 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>);