made_core/value_objects/
execution_outcome.rs1use serde::{Deserialize, Serialize};
2
3use super::{Attributes, DurationMs, ExecutionId, ExecutionStatus};
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
7pub struct ExecutionOutcome {
8 id: ExecutionId,
9 status: ExecutionStatus,
10 duration: DurationMs,
11 output: Attributes,
12}
13
14impl ExecutionOutcome {
15 #[must_use]
16 pub const fn new(
17 id: ExecutionId,
18 status: ExecutionStatus,
19 duration: DurationMs,
20 output: Attributes,
21 ) -> Self {
22 Self {
23 id,
24 status,
25 duration,
26 output,
27 }
28 }
29
30 #[must_use]
31 pub const fn id(&self) -> &ExecutionId {
32 &self.id
33 }
34
35 #[must_use]
36 pub const fn status(&self) -> ExecutionStatus {
37 self.status
38 }
39
40 #[must_use]
41 pub const fn duration(&self) -> DurationMs {
42 self.duration
43 }
44
45 #[must_use]
46 pub const fn output(&self) -> &Attributes {
47 &self.output
48 }
49}