- change all Option<Vec<_>> into Vec<_>

- add multi-channel.ome test
This commit is contained in:
Wim Pomp
2026-01-04 16:49:12 +01:00
parent bc2ea1eb0f
commit 034b879e3f
4 changed files with 33 additions and 31 deletions

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "ome-metadata" name = "ome-metadata"
version = "0.3.3" version = "0.4.0"
edition = "2024" edition = "2024"
rust-version = "1.85.1" rust-version = "1.85.1"
authors = ["Wim Pomp <w.pomp@nki.nl>"] authors = ["Wim Pomp <w.pomp@nki.nl>"]

View File

@@ -48,5 +48,6 @@ mod tests {
i: "beads_2023_05_04__19_00_22" i: "beads_2023_05_04__19_00_22"
j: "20230511-p53-4x-CMV-1min-4h-01-Airyscan Processing-01" j: "20230511-p53-4x-CMV-1min-4h-01-Airyscan Processing-01"
k: "YTL1849A131_2023_05_04__13_36_36" k: "YTL1849A131_2023_05_04__13_36_36"
l: "multi-channel.ome"
); );
} }

View File

@@ -1584,30 +1584,30 @@ pub struct Ome {
pub creator: Option<String>, pub creator: Option<String>,
#[serde(rename = "Rights")] #[serde(rename = "Rights")]
pub rights: Option<Rights>, pub rights: Option<Rights>,
#[serde(rename = "Project")] #[serde(default, rename = "Project")]
pub project: Option<Vec<Project>>, pub project: Vec<Project>,
#[serde(rename = "Dataset")] #[serde(default, rename = "Dataset")]
pub dataset: Option<Vec<Dataset>>, pub dataset: Vec<Dataset>,
#[serde(rename = "Folder")] #[serde(default, rename = "Folder")]
pub folder: Option<Vec<Folder>>, pub folder: Vec<Folder>,
#[serde(rename = "Experiment")] #[serde(default, rename = "Experiment")]
pub experiment: Option<Vec<Experiment>>, pub experiment: Vec<Experiment>,
#[serde(rename = "Plate")] #[serde(default, rename = "Plate")]
pub plate: Option<Vec<Plate>>, pub plate: Vec<Plate>,
#[serde(rename = "Screen")] #[serde(default, rename = "Screen")]
pub screen: Option<Vec<Screen>>, pub screen: Vec<Screen>,
#[serde(rename = "Experimenter")] #[serde(default, rename = "Experimenter")]
pub experimenter: Option<Vec<Experimenter>>, pub experimenter: Vec<Experimenter>,
#[serde(rename = "ExperimenterGroup")] #[serde(default, rename = "ExperimenterGroup")]
pub experimenter_group: Option<Vec<ExperimenterGroup>>, pub experimenter_group: Vec<ExperimenterGroup>,
#[serde(rename = "Instrument")] #[serde(default, rename = "Instrument")]
pub instrument: Option<Vec<Instrument>>, pub instrument: Vec<Instrument>,
#[serde(rename = "Image")] #[serde(default, rename = "Image")]
pub image: Option<Vec<Image>>, pub image: Vec<Image>,
#[serde(rename = "StructuredAnnotations")] #[serde(rename = "StructuredAnnotations")]
pub structured_annotations: Option<StructuredAnnotations>, pub structured_annotations: Option<StructuredAnnotations>,
#[serde(rename = "ROI")] #[serde(default, rename = "ROI")]
pub roi: Option<Vec<Roi>>, pub roi: Vec<Roi>,
#[serde(rename = "BinaryOnly")] #[serde(rename = "BinaryOnly")]
pub binary_only: Option<OmeBinaryOnly>, pub binary_only: Option<OmeBinaryOnly>,
} }
@@ -1812,16 +1812,16 @@ pub struct Pixels {
rename = "@TimeIncrementUnit" rename = "@TimeIncrementUnit"
)] )]
pub time_increment_unit: UnitsTime, pub time_increment_unit: UnitsTime,
#[serde(rename = "Channel")] #[serde(default, rename = "Channel")]
pub channel: Option<Vec<Channel>>, pub channel: Vec<Channel>,
#[serde(rename = "BinData")] #[serde(default, rename = "BinData")]
pub bin_data: Option<Vec<BinData>>, pub bin_data: Vec<BinData>,
#[serde(rename = "TiffData")] #[serde(default, rename = "TiffData")]
pub tiff_data: Option<Vec<TiffData>>, pub tiff_data: Vec<TiffData>,
#[serde(rename = "MetadataOnly")] #[serde(rename = "MetadataOnly")]
pub metadata_only: Option<MetadataOnly>, pub metadata_only: Option<MetadataOnly>,
#[serde(rename = "Plane")] #[serde(default, rename = "Plane")]
pub plane: Option<Vec<Plane>>, pub plane: Vec<Plane>,
} }
impl Pixels { impl Pixels {
pub fn default_physical_size_x_unit() -> UnitsLength { pub fn default_physical_size_x_unit() -> UnitsLength {

View File

@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><OME xmlns="http://www.openmicroscopy.org/Schemas/OME/2016-06" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Creator="OME Bio-Formats 5.2.2" UUID="urn:uuid:bebd2be7-8253-4b90-be93-4df567ffe1be" xsi:schemaLocation="http://www.openmicroscopy.org/Schemas/OME/2016-06 http://www.openmicroscopy.org/Schemas/OME/2016-06/ome.xsd"><Image ID="Image:0" Name="multi-channel.ome.tif"><Pixels BigEndian="true" DimensionOrder="XYZCT" ID="Pixels:0" Interleaved="false" SignificantBits="8" SizeC="3" SizeT="1" SizeX="439" SizeY="167" SizeZ="1" Type="int8"><Channel ID="Channel:0:0" SamplesPerPixel="1"><LightPath/></Channel><Channel ID="Channel:0:1" SamplesPerPixel="1"><LightPath/></Channel><Channel ID="Channel:0:2" SamplesPerPixel="1"><LightPath/></Channel><TiffData FirstC="0" FirstT="0" FirstZ="0" IFD="0" PlaneCount="1"><UUID FileName="multi-channel.ome.tif">urn:uuid:bebd2be7-8253-4b90-be93-4df567ffe1be</UUID></TiffData><TiffData FirstC="1" FirstT="0" FirstZ="0" IFD="1" PlaneCount="1"><UUID FileName="multi-channel.ome.tif">urn:uuid:bebd2be7-8253-4b90-be93-4df567ffe1be</UUID></TiffData><TiffData FirstC="2" FirstT="0" FirstZ="0" IFD="2" PlaneCount="1"><UUID FileName="multi-channel.ome.tif">urn:uuid:bebd2be7-8253-4b90-be93-4df567ffe1be</UUID></TiffData></Pixels></Image></OME>