kr580 2.0.0

Desktop KR580VM80 / Intel 8080 emulator.
Documentation
use super::PrinterConfiguration;

#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum PrinterFeatureGroup {
    General,
    Paper,
    Graphics,
}

#[derive(Clone, Debug, PartialEq, Eq)]
pub struct PrinterFeatureOption {
    pub name: String,
    pub display_name: String,
    pub constrained: bool,
}

#[derive(Clone, Debug, PartialEq, Eq)]
pub struct PrinterFeature {
    pub name: String,
    pub display_name: String,
    pub group: PrinterFeatureGroup,
    pub options: Vec<PrinterFeatureOption>,
    pub selected_option: Option<String>,
}

#[derive(Clone, Debug, PartialEq, Eq)]
pub struct PrinterParameter {
    pub name: String,
    pub display_name: String,
    pub value_type: String,
    pub value: String,
    pub minimum: Option<i64>,
    pub maximum: Option<i64>,
}

#[derive(Clone, Debug, PartialEq, Eq)]
pub struct PrinterPropertySheet {
    pub configuration: PrinterConfiguration,
    pub features: Vec<PrinterFeature>,
    pub parameters: Vec<PrinterParameter>,
    pub provider_error: Option<String>,
}

#[derive(Clone, Debug, PartialEq, Eq)]
pub enum PrinterPropertyChange {
    Feature {
        feature_name: String,
        option_name: String,
    },
    Parameter {
        parameter_name: String,
        value_type: String,
        value: String,
    },
}