lang: work on some basics

This commit is contained in:
Schrottkatze 2024-07-08 20:23:29 +02:00
parent 1e0741e600
commit dc44244e7b
Signed by: schrottkatze
SSH key fingerprint: SHA256:hXb3t1vINBFCiDCmhRABHX5ocdbLiKyCdKI4HK2Rbbc
2 changed files with 16 additions and 2 deletions

View file

@ -1,5 +1,7 @@
use std::path::Path; use std::path::Path;
use self::files::{Files, OpenFileError};
mod error; mod error;
mod files; mod files;
@ -7,8 +9,19 @@ struct World;
impl World { impl World {
pub fn new(entry_point: &Path) -> Result<Self, WorldCreationError> { pub fn new(entry_point: &Path) -> Result<Self, WorldCreationError> {
let mut files = Files::default();
let (entry_point_id, errors) = files.add_file(entry_point)?;
todo!() todo!()
} }
} }
enum WorldCreationError {} enum WorldCreationError {
FailedToOpenEntryPoint(OpenFileError),
}
impl From<OpenFileError> for WorldCreationError {
fn from(value: OpenFileError) -> Self {
Self::FailedToOpenEntryPoint(value)
}
}

View file

@ -15,7 +15,8 @@ use crate::{
world::{error::Error, files::source_file::SourceFile}, world::{error::Error, files::source_file::SourceFile},
}; };
struct Files { #[derive(Default)]
pub struct Files {
inner: Vec<source_file::SourceFile>, inner: Vec<source_file::SourceFile>,
path_to_id_map: HashMap<PathBuf, FileId>, path_to_id_map: HashMap<PathBuf, FileId>,
} }