Files
rustytorch/demos/slidescope-shared/src/lib.rs
T
2026-03-04 00:08:42 +00:00

48 lines
1.4 KiB
Rust

//! 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};