Skip to main content

burn_central_client/experiment/
websocket.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize)]
4#[serde(tag = "type", rename_all = "snake_case")]
5pub enum InputUsed {
6    Artifact { artifact_id: String },
7    Model { model_version_id: String },
8}
9
10#[derive(Debug, Serialize)]
11#[serde(tag = "status", rename_all = "snake_case")]
12pub enum ExperimentCompletion {
13    Success,
14    Fail { reason: String },
15}
16
17#[derive(Debug, Serialize)]
18pub struct MetricLog {
19    pub name: String,
20    pub value: f64,
21}
22
23#[derive(Debug, Serialize)]
24#[serde(tag = "type", content = "data", rename_all = "snake_case")]
25pub enum ExperimentMessage {
26    MetricsLog {
27        epoch: usize,
28        split: String,
29        iteration: usize,
30        items: Vec<MetricLog>,
31    },
32    MetricDefinitionLog {
33        name: String,
34        description: Option<String>,
35        unit: Option<String>,
36        higher_is_better: bool,
37    },
38    EpochSummaryLog {
39        epoch: usize,
40        split: String,
41        best_metric_values: Vec<MetricLog>,
42    },
43    Log(String),
44    Arguments(serde_json::Value),
45    Config {
46        value: serde_json::Value,
47        name: String,
48    },
49    InputUsed(InputUsed),
50    Error(String),
51    ExperimentComplete(ExperimentCompletion),
52}
53
54#[derive(Debug, Deserialize)]
55#[serde(tag = "type", content = "data", rename_all = "snake_case")]
56pub enum ServerMessage {
57    CancelRequested,
58}