//! Shared IPC types for the rtx-slidescope demo //! //! This crate defines all the types used for communication between //! the Tauri frontend and the Rust backend in the SlideScope demo. //! //! # Modules //! //! - [`slide`]: Slide metadata and status types //! - [`nmf`]: NMF configuration and result types //! - [`tiles`]: Deep-zoom tile serving types //! - [`jobs`]: Processing job management types //! - [`ipc`]: Service status and IPC request/response types //! //! # Example //! //! ```rust //! use slidescope_shared::{SlideMetadata, SlideStatus, NmfConfig, TileRequest}; //! //! // Create NMF config for H&E staining //! let config = NmfConfig::he(); //! assert_eq!(config.n_components, 2); //! //! // Create a tile request //! let request = TileRequest { //! slide_id: "slide123".to_string(), //! z: 5, //! x: 10, //! y: 20, //! layer: slidescope_shared::TileLayer::Original, //! }; //! ``` pub mod ipc; pub mod jobs; pub mod nmf; pub mod slide; pub mod tiles; // Re-export commonly used types at crate root pub use ipc::{ BatchResult, ExportFormat, ExportRequest, ImportOptions, QueueStatus, SlideFilter, SlidescopeStatus, }; pub use jobs::{JobProgress, JobState, JobStatus, ProcessingPhase, ProcessingRequest}; pub use nmf::{DivergenceType, NmfConfig, NmfResult, StainMatrix}; pub use slide::{ImageFormat, SlideMetadata, SlideStatus, StainType}; pub use tiles::{DziMetadata, PyramidConfig, TileFormat, TileLayer, TileRequest, TileResponse};