@@ -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,16 +238,20 @@ 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) ?;
244+
243245 let content = bincode:: serialize ( & self ) . unwrap ( ) ;
244246 f. write ( & content) ?;
245247 Ok ( ( ) )
246248 }
247249
248250 fn write_to_file ( & self , benchmark_name : String ) -> std:: io:: Result < ( ) > {
249- let file_name = format ! ( "../zok_tests/constraints/{}.ctk" , benchmark_name) ;
251+ let file_name = format ! ( "../zok_tests/constraints/{benchmark_name}.ctk" ) ;
252+ create_dir_all ( Path :: new ( & file_name) . parent ( ) . unwrap ( ) ) ?;
250253 let mut f = File :: create ( file_name) ?;
254+
251255 writeln ! ( & mut f, "Num Blocks: {}" , self . block_num_instances) ?;
252256 writeln ! ( & mut f, "Max Num Vars: {}" , self . num_vars) ?;
253257 writeln ! ( & mut f, "Num Inputs: {}" , self . num_inputs_unpadded) ?;
@@ -375,15 +379,18 @@ struct RunTimeKnowledge {
375379
376380impl RunTimeKnowledge {
377381 fn serialize_to_file ( & self , benchmark_name : String ) -> std:: io:: Result < ( ) > {
378- let file_name = format ! ( "../zok_tests/inputs/{}_bin.rtk" , benchmark_name) ;
382+ let file_name = format ! ( "../zok_tests/inputs/{benchmark_name}_bin.rtk" ) ;
383+ create_dir_all ( Path :: new ( & file_name) . parent ( ) . unwrap ( ) ) ?;
379384 let mut f = File :: create ( file_name) ?;
380385 let content = bincode:: serialize ( & self ) . unwrap ( ) ;
381386 f. write ( & content) ?;
382387 Ok ( ( ) )
383388 }
384389
385390 fn write_to_file ( & self , benchmark_name : String ) -> std:: io:: Result < ( ) > {
386- let file_name = format ! ( "../zok_tests/inputs/{}.rtk" , benchmark_name) ;
391+ let dir = "../zok_tests/inputs" ;
392+ create_dir_all ( dir) ?;
393+ let file_name = format ! ( "{dir}/{benchmark_name}.rtk" ) ;
387394 let mut f = File :: create ( file_name) ?;
388395 writeln ! (
389396 & mut f,
0 commit comments