use serde::Serialize;
use crate::{rpc::ExecutionLocationProvider, DecthingsParameterProvider};
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DebugSessionOptions {
#[serde(skip_serializing_if = "Option::is_none")]
pub terminate_after_inactive_seconds: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub remote_inspector: Option<bool>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct LaunchDebugSessionParams<'a> {
pub model_id: &'a str,
pub execution_location: ExecutionLocationProvider<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
pub options: Option<DebugSessionOptions>,
#[cfg(feature = "events")]
#[serde(skip_serializing_if = "Option::is_none")]
pub subscribe_to_events: Option<bool>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetDebugSessionsParams<'a, S: AsRef<str>> {
#[serde(skip_serializing_if = "Option::is_none")]
pub debug_session_ids: Option<&'a [S]>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct TerminateDebugSessionParams<'a> {
pub debug_session_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CallCreateModelStateParams<'a> {
pub debug_session_id: &'a str,
pub params: Vec<DecthingsParameterProvider<'a>>,
}
#[derive(Debug, Clone)]
pub struct StateData<'a, D: AsRef<[u8]>> {
pub key: &'a str,
pub data: D,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase", tag = "type")]
pub enum StateDataProvider<'a, D: AsRef<[u8]>> {
#[serde(rename_all = "camelCase")]
Data {
#[serde(skip_serializing)]
data: &'a [StateData<'a, D>],
},
#[serde(rename_all = "camelCase")]
DataId { data_id: &'a str },
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
#[serde(bound(serialize = ""))]
pub struct CallInstantiateModelParams<'a, D: AsRef<[u8]>> {
pub debug_session_id: &'a str,
pub state_data: StateDataProvider<'a, D>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CallTrainParams<'a> {
pub debug_session_id: &'a str,
pub instantiated_model_id: &'a str,
pub params: Vec<DecthingsParameterProvider<'a>>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DebugGetTrainingStatusParams<'a> {
pub debug_session_id: &'a str,
pub training_session_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DebugTrainingMetricsToFetch<'a> {
pub name: &'a str,
pub start_index: u32,
pub amount: u32,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DebugGetTrainingMetricsParams<'a> {
pub debug_session_id: &'a str,
pub training_session_id: &'a str,
pub metrics: &'a [DebugTrainingMetricsToFetch<'a>],
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DebugCancelTrainingSessionParams<'a> {
pub debug_session_id: &'a str,
pub training_session_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CallEvaluateParams<'a> {
pub debug_session_id: &'a str,
pub instantiated_model_id: &'a str,
pub params: Vec<DecthingsParameterProvider<'a>>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CallGetModelStateParams<'a> {
pub debug_session_id: &'a str,
pub instantiated_model_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DownloadStateDataParams<'a, S: AsRef<str>> {
pub debug_session_id: &'a str,
pub data_id: &'a str,
#[serde(serialize_with = "super::super::serialize_option_asref_str_seq")]
#[serde(skip_serializing_if = "Option::is_none")]
pub keys: Option<&'a [S]>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SendToRemoteInspectorParams<'a, T: AsRef<[u8]>> {
pub debug_session_id: &'a str,
#[serde(skip_serializing)]
pub data: T,
}
#[cfg(feature = "events")]
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DebugSubscribeToEventsParams<'a> {
pub debug_session_id: &'a str,
}
#[cfg(feature = "events")]
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DebugUnsubscribeFromEventsParams<'a> {
pub debug_session_id: &'a str,
}