args: use PathBuf instead of string for file path

Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
This commit is contained in:
2023-08-13 07:30:59 +05:30
parent d70b196042
commit caf528b6c0
3 changed files with 19 additions and 11 deletions

View File

@@ -34,10 +34,11 @@
commonArgs = { inherit src; };
cargoArtifacts = craneLib.buildDepsOnly commonArgs;
# there are no deps right now
# cargoArtifacts = craneLib.buildDepsOnly commonArgs;
tricc = craneLib.buildPackage (commonArgs // {
inherit cargoArtifacts;
# inherit cargoArtifacts;
doCheck = false;
});
in
@@ -49,7 +50,7 @@
# not using flake checks to run them individually
checks = {
clippy = craneLib.cargoClippy (commonArgs // {
inherit cargoArtifacts;
# inherit cargoArtifacts;
});
fmt = craneLib.cargoFmt {
@@ -57,11 +58,11 @@
};
doc = craneLib.cargoDoc (commonArgs // {
inherit cargoArtifacts;
# inherit cargoArtifacts;
});
nextest = craneLib.cargoNextest (commonArgs // {
inherit cargoArtifacts;
# inherit cargoArtifacts;
partitions = 1;
partitionType = "count";
});

View File

@@ -1,4 +1,5 @@
use std::env;
use std::path::PathBuf;
use std::process::exit;
const VERSION: &str = env!("CARGO_PKG_VERSION");
@@ -8,7 +9,7 @@ const CRATE: &str = env!("CARGO_CRATE_NAME");
#[derive(Default)]
pub struct Args {
version: bool,
file: Option<String>,
file: Option<PathBuf>,
}
impl Args {
@@ -34,7 +35,7 @@ impl Args {
if self.file.is_some() {
panic!("please specify only a single source file!");
}
self.file = Some(file.to_owned());
self.file = Some(PathBuf::from(file));
}
}
}
@@ -55,7 +56,7 @@ impl Args {
/// Fetches the file from the arguments.
/// Panics if there is no file in the arguments
#[inline]
pub fn get_file(self) -> String {
pub fn get_file(self) -> PathBuf {
self.file.expect("no file supplied!")
}
}

View File

@@ -27,8 +27,14 @@ fn main() {
args.handle();
let file = args.get_file();
let content = fs::read_to_string(file).expect("Couldn't read the file");
let content = fs::read_to_string(&file).expect("Couldn't read the file");
let mut parser = Parser::new(&content);
println!("{:?}", parser.parse());
let Some(parent) = parser.parse() else {
eprintln!(
"Failed to parse {} - See the errors above",
file.to_string_lossy()
);
std::process::exit(1);
};
println!("Parsed AST:\n{:#?}", parent);
}