sol_lang/introspec/
project.rs

1use miette::Diagnostic;
2use std::{fs, path::PathBuf};
3use thiserror::Error;
4
5/// Compilation of `.sol` can only happen within
6/// a valid project.
7pub struct Project {
8    pub index_directory: PathBuf,
9}
10
11#[derive(Error, Debug, Diagnostic)]
12#[error("Error loading project.")]
13pub enum ProjectLoadError {
14    IO(#[from] std::io::Error),
15}
16
17impl Project {
18    pub fn load_from_directory(path: PathBuf) -> Result<(), ProjectLoadError> {
19        let mut dir = fs::read_dir(path)?;
20
21        if dir.any(|entry| {
22            entry
23                .map(|entry| entry.file_name() == "index.sol")
24                .unwrap_or(false)
25        }) {
26            println!("Some index.sol");
27        } else {
28            println!("No index.sol");
29        }
30
31        Ok(())
32    }
33}
34
35pub struct File {
36    uri: String,
37}