Skip to main content

edc_web_components/models/
dataset_extra_fields.rs

1use edc_connector_client::types::ExtraTokenFields;
2use edc_federated_catalog_client::models::{Creator, Thumbnail};
3use serde::Deserialize;
4use serde_with::{OneOrMany, formats::PreferMany, serde_as};
5
6#[serde_as]
7#[derive(Deserialize, Debug, Clone)]
8pub struct DatasetExtraFields {
9  #[serde(rename = "name", alias = "edc:name")]
10  pub name: String,
11  #[serde(rename = "contenttype", alias = "edc:contenttype")]
12  pub content_type: String,
13  #[serde(alias = "dct:title", default)]
14  pub title: Option<String>,
15  #[serde(alias = "http://www.w3.org/2000/01/rdf-schema#comment", default)]
16  pub description: Option<String>,
17  #[serde(alias = "dcat:version", default)]
18  pub version: Option<String>,
19  #[serde(alias = "dct:creator", default)]
20  pub creator: Option<Creator>,
21  #[serde(alias = "http://xmlns.com/foaf/0.1/thumbnail", default)]
22  pub thumbnail: Option<Thumbnail>,
23  #[serde(alias = "dcat:keyword", default)]
24  #[serde_as(deserialize_as = "OneOrMany<_, PreferMany>")]
25  pub keywords: Vec<String>,
26  #[serde(alias = "dcat:landingPage", default)]
27  pub landing_page: Option<String>,
28  #[serde(alias = "dct:type", alias = "http://purl.org/dc/terms/type", default)]
29  #[serde_as(deserialize_as = "OneOrMany<_, PreferMany>")]
30  pub dcterm_types: Vec<String>,
31}
32
33impl ExtraTokenFields for DatasetExtraFields {}