@@ -14,7 +14,7 @@ use circ::target::r1cs::{Lc, VarType};
1414use core:: cmp:: min;
1515use rug:: Integer ;
1616
17- use std:: fs:: File ;
17+ use std:: fs:: { create_dir_all , File } ;
1818use std:: io:: { BufRead , BufReader , Write } ;
1919
2020use circ:: cfg:: {
@@ -23,7 +23,7 @@ use circ::cfg::{
2323 CircOpt ,
2424} ;
2525use core:: cmp:: Ordering ;
26- use std:: path:: PathBuf ;
26+ use std:: path:: { Path , PathBuf } ;
2727
2828use libspartan:: {
2929 instance:: Instance , Assignment , InputsAssignment , MemsAssignment , SNARKGens , VarsAssignment ,
@@ -238,15 +238,17 @@ struct CompileTimeKnowledge {
238238
239239impl CompileTimeKnowledge {
240240 fn serialize_to_file ( & self , benchmark_name : String ) -> std:: io:: Result < ( ) > {
241- let file_name = format ! ( "../zok_tests/constraints/{}_bin.ctk" , benchmark_name) ;
241+ let file_name = format ! ( "../zok_tests/constraints/{benchmark_name}_bin.ctk" ) ;
242+ create_dir_all ( Path :: new ( & file_name) . parent ( ) . unwrap ( ) ) ?;
242243 let mut f = File :: create ( file_name) ?;
243244 let content = bincode:: serialize ( & self ) . unwrap ( ) ;
244245 f. write ( & content) ?;
245246 Ok ( ( ) )
246247 }
247248
248249 fn write_to_file ( & self , benchmark_name : String ) -> std:: io:: Result < ( ) > {
249- let file_name = format ! ( "../zok_tests/constraints/{}.ctk" , benchmark_name) ;
250+ let file_name = format ! ( "../zok_tests/constraints/{benchmark_name}.ctk" ) ;
251+ create_dir_all ( Path :: new ( & file_name) . parent ( ) . unwrap ( ) ) ?;
250252 let mut f = File :: create ( file_name) ?;
251253 writeln ! ( & mut f, "Num Blocks: {}" , self . block_num_instances) ?;
252254 writeln ! ( & mut f, "Max Num Vars: {}" , self . num_vars) ?;
@@ -375,15 +377,18 @@ struct RunTimeKnowledge {
375377
376378impl RunTimeKnowledge {
377379 fn serialize_to_file ( & self , benchmark_name : String ) -> std:: io:: Result < ( ) > {
378- let file_name = format ! ( "../zok_tests/inputs/{}_bin.rtk" , benchmark_name) ;
380+ let file_name = format ! ( "../zok_tests/inputs/{benchmark_name}_bin.rtk" ) ;
381+ create_dir_all ( Path :: new ( & file_name) . parent ( ) . unwrap ( ) ) ?;
379382 let mut f = File :: create ( file_name) ?;
380383 let content = bincode:: serialize ( & self ) . unwrap ( ) ;
381384 f. write ( & content) ?;
382385 Ok ( ( ) )
383386 }
384387
385388 fn write_to_file ( & self , benchmark_name : String ) -> std:: io:: Result < ( ) > {
386- let file_name = format ! ( "../zok_tests/inputs/{}.rtk" , benchmark_name) ;
389+ let dir = "../zok_tests/inputs" ;
390+ create_dir_all ( dir) ?;
391+ let file_name = format ! ( "{dir}/{benchmark_name}.rtk" ) ;
387392 let mut f = File :: create ( file_name) ?;
388393 writeln ! (
389394 & mut f,
0 commit comments