use crate::{tensor::DecthingsTensor, DecthingsParameterDefinition};
use serde::{Serialize, Serializer};
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CreateDatasetParams<'a> {
pub name: &'a str,
pub description: &'a str,
pub tags: Option<&'a [super::super::TagProvider<'a>]>,
pub rules: &'a [&'a DecthingsParameterDefinition],
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct UpdateDatasetProperties<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<&'a str>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<&'a str>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<&'a [super::super::TagProvider<'a>]>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct UpdateDatasetParams<'a> {
pub dataset_id: &'a str,
pub properties: UpdateDatasetProperties<'a>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct DeleteDatasetParams<'a> {
pub dataset_id: &'a str,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetDatasetsParams<'a, S: AsRef<str>> {
#[serde(skip_serializing_if = "Option::is_none")]
pub dataset_ids: Option<&'a [S]>,
}
#[derive(Debug, Clone)]
pub struct DataToAddForKey<'a> {
pub key: &'a str,
pub data: Vec<DecthingsTensor<'a>>,
}
impl Serialize for DataToAddForKey<'_> {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
serializer.serialize_str(self.key)
}
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct AddEntriesParams<'a> {
pub dataset_id: &'a str,
pub keys: Vec<DataToAddForKey<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dataset_version_id: Option<&'a str>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct AddEntriesToNeedsReviewParams<'a> {
pub dataset_id: &'a str,
pub keys: Vec<DataToAddForKey<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dataset_version_id: Option<&'a str>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct FinalizeNeedsReviewEntriesParams<'a> {
pub dataset_id: &'a str,
pub indexes: &'a [u32],
#[serde(skip_serializing)]
pub keys: Vec<DataToAddForKey<'a>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dataset_version_id: Option<&'a str>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct EntriesToGetRange {
pub start: u32,
pub end: u32,
}
#[derive(Debug, Clone, Serialize)]
#[serde(untagged)]
pub enum EntriesToGet<'a> {
Indexes(&'a [u32]),
Range(EntriesToGetRange),
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetEntriesParams<'a> {
pub dataset_id: &'a str,
pub entries: EntriesToGet<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dataset_version_id: Option<&'a str>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetNeedsReviewEntriesParams<'a> {
pub dataset_id: &'a str,
pub entries: EntriesToGet<'a>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dataset_version_id: Option<&'a str>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct RemoveEntriesParams<'a> {
pub dataset_id: &'a str,
pub entries: &'a [u32],
#[serde(skip_serializing_if = "Option::is_none")]
pub dataset_version_id: Option<&'a str>,
}
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct RemoveNeedsReviewEntriesParams<'a> {
pub dataset_id: &'a str,
pub entries: &'a [u32],
#[serde(skip_serializing_if = "Option::is_none")]
pub dataset_version_id: Option<&'a str>,
}