apicize_lib/execution/results/
execution_result_summary.rs

1use serde::{Deserialize, Serialize};
2
3use crate::{ApicizeError, ApicizeTestBehavior};
4
5use super::execution_result_success::ExecutionResultSuccess;
6
7/// Summary information about a request or group execution used for menus and summaries
8#[derive(Clone, Serialize, Deserialize)]
9#[serde(rename_all = "camelCase")]
10pub struct ExecutionResultSummary {
11    /// Execution counter/identifier (will be the same for summary and detail)
12    pub exec_ctr: usize,
13
14    /// Request or group ID
15    pub request_or_group_id: String,
16
17    /// Counter/identifier of parent execution result, if any
18    #[serde(skip_serializing_if = "Option::is_none")]
19    pub parent_exec_ctr: Option<usize>,
20
21    ///Counters/identifiers of child execution results, if any
22    #[serde(skip_serializing_if = "Option::is_none")]
23    pub child_exec_ctrs: Option<Vec<usize>>,
24
25    /// Indentation level
26    pub level: usize,
27
28    /// Name of request or group
29    pub name: String,
30
31    /// Optional referential key
32    #[serde(skip_serializing_if = "Option::is_none")]
33    pub key: Option<String>,
34
35    /// Associative tag name
36    #[serde(skip_serializing_if = "Option::is_none")]
37    pub tag: Option<String>,
38
39    /// Method for request
40    #[serde(skip_serializing_if = "Option::is_none")]
41    pub method: Option<String>,
42
43    /// URL requested
44    #[serde(skip_serializing_if = "Option::is_none")]
45    pub url: Option<String>,
46
47    /// Execution start (millisecond offset from start)
48    pub executed_at: u128,
49
50    /// Duration of execution (milliseconds)
51    pub duration: u128,
52
53    /// HTTP status code
54    #[serde(skip_serializing_if = "Option::is_none")]
55    pub status: Option<u16>,
56
57    /// HTTP status text
58    #[serde(skip_serializing_if = "Option::is_none")]
59    pub status_text: Option<String>,
60
61    /// If true, this is for a request and headers were returned
62    pub has_response_headers: bool,
63
64    /// Used to indicate the length of a response body, if any
65    pub response_body_length: Option<usize>,
66
67    /// Indicates level of call success
68    pub success: ExecutionResultSuccess,
69
70    // Indicates an error
71    #[serde(skip_serializing_if = "Option::is_none")]
72    pub error: Option<ApicizeError>,
73
74    /// Executed test results, if any
75    #[serde(skip_serializing_if = "Option::is_none")]
76    pub test_results: Option<Vec<ApicizeTestBehavior>>,
77
78    /// Ordinal run number, if mult-run result
79    #[serde(skip_serializing_if = "Option::is_none")]
80    pub run_number: Option<usize>,
81
82    /// Ordinal run count, if mult-run result
83    #[serde(skip_serializing_if = "Option::is_none")]
84    pub run_count: Option<usize>,
85
86    /// Ordinal row number, if mult-row result
87    #[serde(skip_serializing_if = "Option::is_none")]
88    pub row_number: Option<usize>,
89
90    /// Ordinal row count, if multi-row result
91    #[serde(skip_serializing_if = "Option::is_none")]
92    pub row_count: Option<usize>,
93}