| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -2,7 +2,7 @@ use super::runnable::Runnable; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use super::setup::Setup;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use super::util::{AddableResource, InternalAddResult};
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use super::SymbolRunner;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use crate::async_utils::try_join;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use crate::async_utils::join;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use crate::loggers::{Logger, StoringLogger};
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use crate::resources::{FromArtifact, FromResource};
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					use crate::symbols::Symbol;
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -36,11 +36,16 @@ macro_rules! add_generic { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      #[allow(unused)]
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      async fn add_generic(&self, ($($name,)*): ($($name,)*)) -> Result<(StoringLogger, ($($name::Artifact,)*), bool), (StoringLogger, Box<dyn Error>)>
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      {
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        let x: Result<_, _> = try_join!($(self.add($name, false),)*);
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        let ($($name,)*) = x?;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        let ($($name,)*) = join!($(self.add($name, false),)*);
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        let logger = StoringLogger::default();
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        $(logger.put($name.0.release());)*
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Ok((logger, ($($name.1,)*), false $(|| $name.2)*))
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        let mut did_run_any = false;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        $(
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        let (log, artifact, did_run) = $name?;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        logger.put(log.release());
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        did_run_any = did_run_any || did_run;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        let $name = artifact;
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        )*
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        Ok((logger, ($($name,)*), did_run_any))
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      }
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    }
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  );
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |