From bb58d235d64cf72e8661588026667f2515caaf4b Mon Sep 17 00:00:00 2001
From: Quaternions <krakow20@gmail.com>
Date: Mon, 22 Jan 2024 21:47:02 -0800
Subject: [PATCH] tweaking

---
 src/main.rs | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/src/main.rs b/src/main.rs
index 0501bbf..2aa6382 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1197,11 +1197,11 @@ impl Query for QueryTriplet{
 	}
 }
 
-async fn discern_node(search_path:&std::path::PathBuf,search_name:&str,style:Option<DecompileStyle>)->AResult<CompileNode>{
+async fn discern_node(search_path:&std::path::PathBuf,search_name:&str,style:Option<DecompileStyle>)->AResult<Option<CompileNode>>{
 	let mut contents_folder=search_path.clone();
 	contents_folder.push(search_name);
 	//folder
-	if let Ok(dir)=tokio::fs::read_dir(contents_folder.as_path()).await{
+	Ok(if let Ok(dir)=tokio::fs::read_dir(contents_folder.as_path()).await{
 		//scan inside the folder for an object to define the class of the folder
 		let (script_file,model_file)=tokio::join!(
 			async {match style{
@@ -1220,7 +1220,7 @@ async fn discern_node(search_path:&std::path::PathBuf,search_name:&str,style:Opt
 			get_file_async(contents_folder.clone(),format!("{}.rbxmx",search_name))
 		);
 		//model? script? both?
-		Ok(match (script_file,model_file){
+		Some(match (script_file,model_file){
 			(Ok(mut file),Err(QueryResolveError::NotFound))=>{
 				//read entire file
 				let mut buf=String::new();
@@ -1249,8 +1249,9 @@ async fn discern_node(search_path:&std::path::PathBuf,search_name:&str,style:Opt
 			|(_,Err(e))=>Err(e)?
 		})
 	}else{
-		Err(anyhow::Error::msg("message"))
-	}
+		//a folder of this name does not exist
+		None
+	})
 }
 
 enum CompileClass{
@@ -1301,7 +1302,9 @@ async fn compile(config:CompileConfig)->AResult<()>{
 			CompileStackInstruction::Referent(item_ref)=>{
 				let item=dom.get_by_ref(item_ref).ok_or(anyhow::Error::msg("null child ref"))?;
 				//check if item exists in folder or subfolder of same name
-				if let Ok(obj)=discern_node(&folder,item.name.as_str(),None).await{
+				todo!("this is totally unnecessary,
+					only the folder needs to exist to determine if traversal should continue");
+				if let Some(obj)=discern_node(&folder,item.name.as_str(),None).await?{
 					//cool
 				}else{
 					//determine if this is ok