Skip to main content

soma_provider_core/
output.rs

1use serde_json::Value;
2
3use crate::ProviderProgressEvent;
4
5#[derive(Debug, Clone, PartialEq)]
6pub struct ProviderOutput {
7    pub value: Value,
8    pub progress: Vec<ProviderProgressEvent>,
9}
10
11impl ProviderOutput {
12    pub fn value(value: Value) -> Self {
13        Self {
14            value,
15            progress: Vec::new(),
16        }
17    }
18
19    pub fn json(value: Value) -> Self {
20        Self::value(value)
21    }
22
23    pub fn into_value(self) -> Value {
24        self.value
25    }
26
27    #[must_use]
28    pub fn with_progress(mut self, progress: Vec<ProviderProgressEvent>) -> Self {
29        self.progress = progress;
30        self
31    }
32}