44#[ cfg_attr( feature = "serde" , serde( rename_all = "snake_case" ) ) ]
55#[ cfg_attr( feature = "serde" , serde( tag = "event" ) ) ]
66pub enum Event {
7- DiscoverStart ,
7+ DiscoverStart {
8+ #[ cfg_attr(
9+ feature = "serde" ,
10+ serde( default , skip_serializing_if = "Option::is_none" )
11+ ) ]
12+ elapsed_s : Option < Elapsed > ,
13+ } ,
814 DiscoverCase {
915 name : String ,
1016 #[ cfg_attr(
@@ -18,6 +24,11 @@ pub enum Event {
1824 serde( default = "true_default" , skip_serializing_if = "is_true" )
1925 ) ]
2026 run : bool ,
27+ #[ cfg_attr(
28+ feature = "serde" ,
29+ serde( default , skip_serializing_if = "Option::is_none" )
30+ ) ]
31+ elapsed_s : Option < Elapsed > ,
2132 } ,
2233 DiscoverComplete {
2334 #[ cfg_attr(
@@ -26,9 +37,20 @@ pub enum Event {
2637 ) ]
2738 elapsed_s : Option < Elapsed > ,
2839 } ,
29- SuiteStart ,
40+ SuiteStart {
41+ #[ cfg_attr(
42+ feature = "serde" ,
43+ serde( default , skip_serializing_if = "Option::is_none" )
44+ ) ]
45+ elapsed_s : Option < Elapsed > ,
46+ } ,
3047 CaseStart {
3148 name : String ,
49+ #[ cfg_attr(
50+ feature = "serde" ,
51+ serde( default , skip_serializing_if = "Option::is_none" )
52+ ) ]
53+ elapsed_s : Option < Elapsed > ,
3254 } ,
3355 CaseComplete {
3456 name : String ,
@@ -71,12 +93,24 @@ impl Event {
7193 let mut buffer = String :: new ( ) ;
7294 buffer. open_object ( ) . unwrap ( ) ;
7395 match self {
74- Self :: DiscoverStart => {
96+ Self :: DiscoverStart { elapsed_s } => {
7597 buffer. key ( "event" ) . unwrap ( ) ;
7698 buffer. keyval_sep ( ) . unwrap ( ) ;
7799 buffer. value ( "discover_start" ) . unwrap ( ) ;
100+
101+ if let Some ( elapsed_s) = elapsed_s {
102+ buffer. val_sep ( ) . unwrap ( ) ;
103+ buffer. key ( "elapsed_s" ) . unwrap ( ) ;
104+ buffer. keyval_sep ( ) . unwrap ( ) ;
105+ buffer. value ( String :: from ( * elapsed_s) ) . unwrap ( ) ;
106+ }
78107 }
79- Self :: DiscoverCase { name, mode, run } => {
108+ Self :: DiscoverCase {
109+ name,
110+ mode,
111+ run,
112+ elapsed_s,
113+ } => {
80114 buffer. key ( "event" ) . unwrap ( ) ;
81115 buffer. keyval_sep ( ) . unwrap ( ) ;
82116 buffer. value ( "discover_case" ) . unwrap ( ) ;
@@ -99,24 +133,39 @@ impl Event {
99133 buffer. keyval_sep ( ) . unwrap ( ) ;
100134 buffer. value ( run) . unwrap ( ) ;
101135 }
136+
137+ if let Some ( elapsed_s) = elapsed_s {
138+ buffer. val_sep ( ) . unwrap ( ) ;
139+ buffer. key ( "elapsed_s" ) . unwrap ( ) ;
140+ buffer. keyval_sep ( ) . unwrap ( ) ;
141+ buffer. value ( String :: from ( * elapsed_s) ) . unwrap ( ) ;
142+ }
102143 }
103144 Self :: DiscoverComplete { elapsed_s } => {
104145 buffer. key ( "event" ) . unwrap ( ) ;
105146 buffer. keyval_sep ( ) . unwrap ( ) ;
106147 buffer. value ( "discover_complete" ) . unwrap ( ) ;
148+
107149 if let Some ( elapsed_s) = elapsed_s {
108150 buffer. val_sep ( ) . unwrap ( ) ;
109151 buffer. key ( "elapsed_s" ) . unwrap ( ) ;
110152 buffer. keyval_sep ( ) . unwrap ( ) ;
111153 buffer. value ( String :: from ( * elapsed_s) ) . unwrap ( ) ;
112154 }
113155 }
114- Self :: SuiteStart => {
156+ Self :: SuiteStart { elapsed_s } => {
115157 buffer. key ( "event" ) . unwrap ( ) ;
116158 buffer. keyval_sep ( ) . unwrap ( ) ;
117159 buffer. value ( "suite_start" ) . unwrap ( ) ;
160+
161+ if let Some ( elapsed_s) = elapsed_s {
162+ buffer. val_sep ( ) . unwrap ( ) ;
163+ buffer. key ( "elapsed_s" ) . unwrap ( ) ;
164+ buffer. keyval_sep ( ) . unwrap ( ) ;
165+ buffer. value ( String :: from ( * elapsed_s) ) . unwrap ( ) ;
166+ }
118167 }
119- Self :: CaseStart { name } => {
168+ Self :: CaseStart { name, elapsed_s } => {
120169 buffer. key ( "event" ) . unwrap ( ) ;
121170 buffer. keyval_sep ( ) . unwrap ( ) ;
122171 buffer. value ( "case_start" ) . unwrap ( ) ;
@@ -125,6 +174,13 @@ impl Event {
125174 buffer. key ( "name" ) . unwrap ( ) ;
126175 buffer. keyval_sep ( ) . unwrap ( ) ;
127176 buffer. value ( name) . unwrap ( ) ;
177+
178+ if let Some ( elapsed_s) = elapsed_s {
179+ buffer. val_sep ( ) . unwrap ( ) ;
180+ buffer. key ( "elapsed_s" ) . unwrap ( ) ;
181+ buffer. keyval_sep ( ) . unwrap ( ) ;
182+ buffer. value ( String :: from ( * elapsed_s) ) . unwrap ( ) ;
183+ }
128184 }
129185 Self :: CaseComplete {
130186 name,
@@ -174,6 +230,7 @@ impl Event {
174230 buffer. key ( "event" ) . unwrap ( ) ;
175231 buffer. keyval_sep ( ) . unwrap ( ) ;
176232 buffer. value ( "suite_complete" ) . unwrap ( ) ;
233+
177234 if let Some ( elapsed_s) = elapsed_s {
178235 buffer. val_sep ( ) . unwrap ( ) ;
179236 buffer. key ( "elapsed_s" ) . unwrap ( ) ;
@@ -237,6 +294,7 @@ impl RunStatus {
237294 }
238295}
239296
297+ /// Time elapsed since process start
240298#[ derive( Copy , Clone , Default , Debug , PartialEq , Eq ) ]
241299#[ cfg_attr( feature = "unstable-schema" , derive( schemars:: JsonSchema ) ) ]
242300#[ cfg_attr( feature = "serde" , derive( serde:: Serialize , serde:: Deserialize ) ) ]
0 commit comments