Skip to main content

mzdata_meta/
sample.rs

1use crate::impl_param_described;
2use crate::params::{ParamDescribed, ParamList};
3
4
5/// A sample that was used to generate a MS dataset
6#[derive(Debug, Default, Clone, PartialEq)]
7#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
8pub struct Sample {
9    /// A "unique" identifier
10    pub id: String,
11    /// The sample's human-friendly name
12    pub name: Option<String>,
13    /// The controlled vocabulary and user parameters of the sample
14    pub params: ParamList
15}
16
17impl Sample {
18    pub fn new(id: String, name: Option<String>, params: ParamList) -> Self {
19        Self { id, name, params }
20    }
21
22    crate::params::find_param_method!(number, &crate::curie!(MS:1000001), "Find the sample number, if it is present");
23    crate::params::find_param_method!(batch, &crate::curie!(MS:1000053), "Find the sample batch, if it is present");
24}
25
26
27impl_param_described!(Sample);