@@ -7,11 +7,11 @@ use std::time::{Duration, SystemTime, UNIX_EPOCH};
77use analyzeme:: { ProfilingData , Timestamp } ;
88use measureme:: file_header:: FILE_EXTENSION ;
99
10+ use clap:: Parser ;
1011use serde:: ser:: SerializeSeq ;
1112use serde:: { Serialize , Serializer } ;
1213use serde_json:: json;
1314use std:: cmp;
14- use structopt:: StructOpt ;
1515
1616fn as_micros < S : Serializer > ( d : & Duration , s : S ) -> Result < S :: Ok , S :: Error > {
1717 let v = ( d. as_secs ( ) * 1_000_000 ) + ( d. subsec_nanos ( ) as u64 / 1_000 ) ;
@@ -43,18 +43,18 @@ struct Event {
4343 args : Option < FxHashMap < String , String > > ,
4444}
4545
46- #[ derive( StructOpt , Debug ) ]
46+ #[ derive( Parser , Debug ) ]
4747struct Opt {
48- #[ structopt ( required_unless = "dir" ) ]
48+ #[ clap ( required_unless = "dir" ) ]
4949 file_prefix : Vec < PathBuf > ,
5050 /// all event trace files in dir will be merged to one chrome_profiler.json file
51- #[ structopt ( long = "dir" ) ]
51+ #[ clap ( long = "dir" ) ]
5252 dir : Option < PathBuf > ,
5353 /// collapse threads without overlapping events
54- #[ structopt ( long = "collapse-threads" ) ]
54+ #[ clap ( long = "collapse-threads" ) ]
5555 collapse_threads : bool ,
5656 /// filter out events with shorter duration (in microseconds)
57- #[ structopt ( long = "minimum-duration" ) ]
57+ #[ clap ( long = "minimum-duration" ) ]
5858 minimum_duration : Option < u128 > ,
5959}
6060
0 commit comments