diff --git a/g_code/src/config/mod.rs b/g_code/src/config/mod.rs index 3cc9f19..53a61c3 100644 --- a/g_code/src/config/mod.rs +++ b/g_code/src/config/mod.rs @@ -23,6 +23,7 @@ mod v5; /// A cross-platform type used to store all configuration types. #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "serde", serde(default))] #[derive(Debug, Default, Clone, PartialEq)] pub struct Settings { pub conversion: GCodeConfig, @@ -33,6 +34,7 @@ pub struct Settings { } #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "serde", serde(default))] #[derive(Debug, Default, Clone, PartialEq)] pub struct MachineConfig { pub supported_functionality: SupportedFunctionality, @@ -43,6 +45,7 @@ pub struct MachineConfig { } #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "serde", serde(default))] #[derive(Debug, Clone, PartialEq)] pub struct GCodeConfig { #[cfg_attr(feature = "serde", serde(flatten))] @@ -63,6 +66,7 @@ impl Default for GCodeConfig { #[derive(Debug, Default, Clone, PartialEq)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "serde", serde(default))] pub struct SupportedFunctionality { /// Indicates support for G2/G3 circular interpolation. /// @@ -71,17 +75,15 @@ pub struct SupportedFunctionality { } #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "serde", serde(default))] #[derive(Debug, Default, Clone, PartialEq)] /// Operations performed after G-Code generation. pub struct PostprocessConfig { /// Convenience field for [g_code::emit::FormatOptions] field - #[cfg_attr(feature = "serde", serde(default))] pub checksums: bool, /// Convenience field for [g_code::emit::FormatOptions] field - #[cfg_attr(feature = "serde", serde(default))] pub line_numbers: bool, /// Convenience field for [g_code::emit::FormatOptions] field - #[cfg_attr(feature = "serde", serde(default))] pub newline_before_comment: bool, } diff --git a/star/src/lower/mod.rs b/star/src/lower/mod.rs index 9b91093..f9c337f 100644 --- a/star/src/lower/mod.rs +++ b/star/src/lower/mod.rs @@ -30,23 +30,21 @@ mod visit; /// High-level output configuration #[derive(Debug, Clone, PartialEq)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[cfg_attr(feature = "serde", serde(default))] pub struct ConversionConfig { /// Dots per inch for pixels, picas, points, etc. pub dpi: f64, /// Set the origin point in millimeters for this conversion - #[cfg_attr(feature = "serde", serde(default = "zero_origin"))] pub origin: [Option; 2], /// Set extra attribute to add when printing node name pub extra_attribute_name: Option, /// Reorder paths to minimize travel time - #[cfg_attr(feature = "serde", serde(default))] pub optimize_path_order: bool, /// CSS selector to filter which SVG elements are converted. /// /// Only the `:not`, `:is`, and `:has` pseudo classes are supported. /// /// - #[cfg_attr(feature = "serde", serde(default))] pub selector_filter: Option, pub starting_point: [Option; 2], }