Skip to main content

flow_plots/options/
spectral.rs

1//! Options for spectral signature plots
2
3use crate::options::{AxisOptions, BasePlotOptions, PlotOptions};
4use derive_builder::Builder;
5
6/// Options for spectral signature plots
7#[derive(Builder, Debug, Clone)]
8#[builder(pattern = "owned")]
9pub struct SpectralSignaturePlotOptions {
10    /// Base plot options (layout, dimensions, etc.)
11    #[builder(default)]
12    pub base: BasePlotOptions,
13
14    /// X-axis configuration (detector channels)
15    #[builder(default)]
16    pub x_axis: Option<AxisOptions>,
17
18    /// Y-axis configuration (normalized intensity 0.0-1.0)
19    #[builder(default)]
20    pub y_axis: Option<AxisOptions>,
21
22    /// Line color (default: blue)
23    #[builder(default = "String::from(\"#1f77b4\")")]
24    pub line_color: String,
25
26    /// Line width (default: 2.0)
27    #[builder(default = "2.0")]
28    pub line_width: f64,
29
30    /// Show grid (default: true)
31    #[builder(default = "true")]
32    pub show_grid: bool,
33}
34
35impl PlotOptions for SpectralSignaturePlotOptions {
36    fn base(&self) -> &BasePlotOptions {
37        &self.base
38    }
39}
40
41impl SpectralSignaturePlotOptions {
42    /// Create a new builder for SpectralSignaturePlotOptions
43    pub fn new() -> SpectralSignaturePlotOptionsBuilder {
44        SpectralSignaturePlotOptionsBuilder::default()
45    }
46}