use pluot_core::registry::LayerRegistration;
use pluot_zarr::layers::zarr_point_layer::{ZarrPointLayer, ZarrPointLayerParams};
use pluot_zarr::layers::zarr_point_3d_layer::{ZarrPoint3dLayer, ZarrPoint3dLayerParams};
use pluot_zarr::layers::zarr_bar_plot_layer::{ZarrBarPlotLayer, ZarrBarPlotLayerParams};
use pluot_zarr::layers::zarr_histogram_layer::{ZarrHistogramLayer, ZarrHistogramLayerParams};
use pluot_zarr::layers::ome_zarr_bitmap_layer::{OmeZarrBitmapLayer, OmeZarrBitmapLayerParams};
use pluot_zarr::layers::ome_zarr_multiscale_layer::{OmeZarrMultiscaleLayer, OmeZarrMultiscaleLayerParams};
inventory::submit! {
LayerRegistration {
layer_type_name: "ZarrPointLayer",
create_layer: |value, view_params| {
let params: ZarrPointLayerParams = serde_json::from_value(value).unwrap();
Box::new(ZarrPointLayer::new(view_params.clone(), params))
},
}
}
inventory::submit! {
LayerRegistration {
layer_type_name: "ZarrPoint3dLayer",
create_layer: |value, view_params| {
let params: ZarrPoint3dLayerParams = serde_json::from_value(value).unwrap();
Box::new(ZarrPoint3dLayer::new(view_params.clone(), params))
},
}
}
inventory::submit! {
LayerRegistration {
layer_type_name: "ZarrBarPlotLayer",
create_layer: |value, view_params| {
let params: ZarrBarPlotLayerParams = serde_json::from_value(value).unwrap();
Box::new(ZarrBarPlotLayer::new(view_params.clone(), params))
},
}
}
inventory::submit! {
LayerRegistration {
layer_type_name: "ZarrHistogramLayer",
create_layer: |value, view_params| {
let params: ZarrHistogramLayerParams = serde_json::from_value(value).unwrap();
Box::new(ZarrHistogramLayer::new(view_params.clone(), params))
},
}
}
inventory::submit! {
LayerRegistration {
layer_type_name: "OmeZarrBitmapLayer",
create_layer: |value, view_params| {
let params: OmeZarrBitmapLayerParams = serde_json::from_value(value).unwrap();
Box::new(OmeZarrBitmapLayer::new(view_params.clone(), params))
},
}
}
inventory::submit! {
LayerRegistration {
layer_type_name: "OmeZarrMultiscaleLayer",
create_layer: |value, view_params| {
let params: OmeZarrMultiscaleLayerParams = serde_json::from_value(value).unwrap();
Box::new(OmeZarrMultiscaleLayer::new(view_params.clone(), params))
},
}
}