burn_central_client/experiment/
websocket.rs1use 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}