Skip to content

Commit 50710db

Browse files
committed
chore: remove optional default traits
1 parent be07c5b commit 50710db

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+101
-311
lines changed

Cargo.lock

-58
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[workspace]
22
resolver = "2"
3-
members = ["crates/*", "derive"]
3+
members = ["crates/*"]
44

55
[workspace.lints.clippy]
66
pedantic = { level = "warn", priority = -1 }

crates/oxvg_optimiser/Cargo.toml

-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ oxvg_ast = { workspace = true, features = [
1717
"parse",
1818
"serialize",
1919
] }
20-
oxvg_derive = { workspace = true }
2120
oxvg_path = { workspace = true, features = ["oxvg", "serde"] }
2221
oxvg_collections = { workspace = true }
2322

crates/oxvg_optimiser/src/jobs/add_attributes_to_svg_element.rs

+2-8
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,18 @@ use oxvg_ast::{
44
element::Element,
55
visitor::{Context, Visitor},
66
};
7-
use oxvg_derive::OptionalDefault;
87
use serde::Deserialize;
98

10-
use crate::Job;
11-
12-
#[derive(Deserialize, Default, Clone, OptionalDefault)]
9+
#[derive(Deserialize, Default, Clone)]
1310
#[serde(rename_all = "camelCase")]
14-
#[job_default(is_default = false)]
1511
pub struct AddAttributesToSVGElement {
1612
pub attributes: BTreeMap<String, String>,
1713
}
1814

19-
impl<E: Element> Job<E> for AddAttributesToSVGElement {}
20-
2115
impl<E: Element> Visitor<E> for AddAttributesToSVGElement {
2216
type Error = String;
2317

24-
fn element(&mut self, element: &mut E, _context: & mut Context<E>) -> Result<(), String> {
18+
fn element(&mut self, element: &mut E, _context: &mut Context<E>) -> Result<(), String> {
2519
let name = element.local_name();
2620

2721
if !element.is_root() || name.as_ref() != "svg" {

crates/oxvg_optimiser/src/jobs/add_classes_to_svg.rs

+2-8
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,10 @@ use oxvg_ast::{
44
element::Element,
55
visitor::{Context, Visitor},
66
};
7-
use oxvg_derive::OptionalDefault;
87
use serde::Deserialize;
98

10-
use crate::Job;
11-
12-
#[derive(Deserialize, Default, Clone, OptionalDefault)]
9+
#[derive(Deserialize, Default, Clone)]
1310
#[serde(rename_all = "camelCase")]
14-
#[job_default(is_default = false)]
1511
/// Adds to the `class` attribute of the root `<svg>` element, omitting duplicates
1612
///
1713
/// <div class="warning">Unlike SVGO, this may change the order of your classes</div>
@@ -20,12 +16,10 @@ pub struct AddClassesToSVG {
2016
pub class_name: Option<String>,
2117
}
2218

23-
impl<E: Element> Job<E> for AddClassesToSVG {}
24-
2519
impl<E: Element> Visitor<E> for AddClassesToSVG {
2620
type Error = String;
2721

28-
fn element(&mut self, element: &mut E, _context: & mut Context<E>) -> Result<(), String> {
22+
fn element(&mut self, element: &mut E, _context: &mut Context<E>) -> Result<(), String> {
2923
if !element.is_root() || element.local_name() != "svg".into() {
3024
return Ok(());
3125
}

crates/oxvg_optimiser/src/jobs/apply_transforms.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,10 @@ use oxvg_ast::{
2020
visitor::{Context, ContextFlags, PrepareOutcome, Visitor},
2121
};
2222
use oxvg_collections::{collections, regex::REFERENCES_URL};
23-
use oxvg_derive::OptionalDefault;
2423
use oxvg_path::{command::Data, convert, Path};
2524
use serde::Deserialize;
2625

27-
#[derive(Deserialize, Default, Clone, Debug, OptionalDefault)]
26+
#[derive(Deserialize, Default, Clone, Debug)]
2827
#[serde(rename_all = "camelCase")]
2928
/// Apply transformations to the path data
3029
pub struct ApplyTransforms {
@@ -35,15 +34,15 @@ pub struct ApplyTransforms {
3534
impl<E: Element> Visitor<E> for ApplyTransforms {
3635
type Error = String;
3736

38-
fn prepare(&mut self, _document: &E, _context_flags: &mut ContextFlags) -> PrepareOutcome {
37+
fn prepare(&mut self, _document: &E, _context_flags: &mut ContextFlags) -> PrepareOutcome {
3938
PrepareOutcome::use_style
4039
}
4140

4241
fn use_style(&self, element: &E) -> bool {
4342
element.get_attribute_local(&"d".into()).is_some()
4443
}
4544

46-
fn element(&mut self, element: &mut E, context: & mut Context<E>) -> Result<(), String> {
45+
fn element(&mut self, element: &mut E, context: &mut Context<E>) -> Result<(), String> {
4746
let d_localname = "d".into();
4847
let Some(path) = element.get_attribute_local(&d_localname) else {
4948
log::debug!("run: path has no d");

crates/oxvg_optimiser/src/jobs/cleanup_attributes.rs

+2-7
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,20 @@ use oxvg_ast::{
33
element::Element,
44
visitor::{Context, Visitor},
55
};
6-
use oxvg_derive::OptionalDefault;
76
use serde::Deserialize;
87

9-
use crate::Job;
10-
11-
#[derive(Deserialize, Default, Clone, OptionalDefault)]
8+
#[derive(Deserialize, Default, Clone)]
129
#[serde(rename_all = "camelCase")]
1310
pub struct CleanupAttributes {
1411
newlines: Option<bool>,
1512
trim: Option<bool>,
1613
spaces: Option<bool>,
1714
}
1815

19-
impl<E: Element> Job<E> for CleanupAttributes {}
20-
2116
impl<E: Element> Visitor<E> for CleanupAttributes {
2217
type Error = String;
2318

24-
fn element(&mut self, element: &mut E, _context: & mut Context<E>) -> Result<(), String> {
19+
fn element(&mut self, element: &mut E, _context: &mut Context<E>) -> Result<(), String> {
2520
for mut attr in element.attributes().iter() {
2621
if matches!(self.newlines, Some(true)) {
2722
attr.set_value(attr.value().as_ref().replace('\n', " ").into());

crates/oxvg_optimiser/src/jobs/cleanup_enable_background.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,12 @@ use oxvg_ast::{
44
element::Element,
55
visitor::{Context, PrepareOutcome, Visitor},
66
};
7-
use oxvg_derive::OptionalDefault;
87
use regex::Regex;
98
use serde::Deserialize;
109

1110
use super::ContextFlags;
1211

13-
#[derive(Deserialize, Default, Clone, OptionalDefault)]
12+
#[derive(Deserialize, Default, Clone)]
1413
#[serde(rename_all = "camelCase")]
1514
pub struct CleanupEnableBackground {
1615
#[serde(skip_deserializing)]
@@ -25,7 +24,7 @@ struct EnableBackgroundDimensions<'a> {
2524
impl<E: Element> Visitor<E> for CleanupEnableBackground {
2625
type Error = String;
2726

28-
fn prepare(&mut self, document: &E, _context_flags: &mut ContextFlags) -> PrepareOutcome {
27+
fn prepare(&mut self, document: &E, _context_flags: &mut ContextFlags) -> PrepareOutcome {
2928
let Some(root) = document.find_element() else {
3029
return PrepareOutcome::none;
3130
};
@@ -42,7 +41,7 @@ impl<E: Element> Visitor<E> for CleanupEnableBackground {
4241
/// - Drop `enable-background` on `<svg>` node, if it matches the node's width and height
4342
/// - Set `enable-background` to `"new"` on `<mask>` or `<pattern>` nodes, if it matches the
4443
/// node's width and height
45-
fn element(&mut self, element: &mut E, _context: & mut Context<E>) -> Result<(), String> {
44+
fn element(&mut self, element: &mut E, _context: &mut Context<E>) -> Result<(), String> {
4645
let style_name = &"style".into();
4746
if let Some(mut style) = element.get_attribute_node_local(style_name) {
4847
let new_value = Regex::new(r"(^|;)\s*enable-background\s*:\s*new[\d\s]*")

crates/oxvg_optimiser/src/jobs/cleanup_ids.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ use oxvg_ast::{
1010
node::{self, Node},
1111
visitor::{Context, PrepareOutcome, Visitor},
1212
};
13-
use oxvg_derive::OptionalDefault;
1413
use serde::Deserialize;
1514

1615
use crate::utils::find_references;
@@ -33,7 +32,7 @@ struct RefRename {
3332
referenced_id: String,
3433
}
3534

36-
#[derive(Debug, Deserialize, Default, Clone, OptionalDefault)]
35+
#[derive(Debug, Deserialize, Default, Clone)]
3736
#[serde(rename_all = "camelCase")]
3837
pub struct CleanupIds {
3938
remove: Option<bool>,

crates/oxvg_optimiser/src/jobs/cleanup_list_of_values.rs

+1-7
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,19 @@ use oxvg_ast::{
22
element::Element,
33
visitor::{Context, Visitor},
44
};
5-
use oxvg_derive::OptionalDefault;
65
use serde::Deserialize;
76

87
use crate::utils::cleanup_values::{self, CleanupValues, Mode};
98

10-
use super::Job;
11-
12-
#[derive(Deserialize, Default, Clone, OptionalDefault)]
9+
#[derive(Deserialize, Default, Clone)]
1310
#[serde(rename_all = "camelCase")]
14-
#[job_default(is_default = false)]
1511
pub struct CleanupListOfValues {
1612
float_precision: Option<usize>,
1713
leading_zero: Option<bool>,
1814
default_px: Option<bool>,
1915
convert_to_px: Option<bool>,
2016
}
2117

22-
impl<E: Element> Job<E> for CleanupListOfValues {}
23-
2418
impl<E: Element> Visitor<E> for CleanupListOfValues {
2519
type Error = String;
2620

crates/oxvg_optimiser/src/jobs/cleanup_numeric_values.rs

+1-6
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,11 @@ use oxvg_ast::{
22
element::Element,
33
visitor::{Context, Visitor},
44
};
5-
use oxvg_derive::OptionalDefault;
65
use serde::Deserialize;
76

87
use crate::utils::cleanup_values::{self, CleanupValues, Mode};
98

10-
use super::Job;
11-
12-
#[derive(Deserialize, Default, Clone, OptionalDefault)]
9+
#[derive(Deserialize, Default, Clone)]
1310
#[serde(rename_all = "camelCase")]
1411
pub struct CleanupNumericValues {
1512
float_precision: Option<usize>,
@@ -18,8 +15,6 @@ pub struct CleanupNumericValues {
1815
convert_to_px: Option<bool>,
1916
}
2017

21-
impl<E: Element> Job<E> for CleanupNumericValues {}
22-
2318
impl<E: Element> Visitor<E> for CleanupNumericValues {
2419
type Error = String;
2520

crates/oxvg_optimiser/src/jobs/collapse_groups.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,9 @@ use oxvg_ast::{
1010
visitor::{Context, ContextFlags, PrepareOutcome, Visitor},
1111
};
1212
use oxvg_collections::collections::{ElementGroup, Group, INHERITABLE_ATTRS};
13-
use oxvg_derive::OptionalDefault;
1413
use serde::Deserialize;
1514

16-
#[derive(Deserialize, Clone, OptionalDefault)]
15+
#[derive(Deserialize, Clone)]
1716
#[serde(rename_all = "camelCase")]
1817
pub struct CollapseGroups(bool);
1918

crates/oxvg_optimiser/src/jobs/convert_colors.rs

+3-4
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ use oxvg_ast::{
1919
element::Element,
2020
visitor::{Context, PrepareOutcome, Visitor},
2121
};
22-
use oxvg_derive::OptionalDefault;
2322
use serde::Deserialize;
2423

2524
use super::ContextFlags;
@@ -53,7 +52,7 @@ enum Color<'a> {
5352
None,
5453
}
5554

56-
#[derive(Deserialize, Default, Clone, OptionalDefault)]
55+
#[derive(Deserialize, Default, Clone)]
5756
#[serde(rename_all = "camelCase")]
5857
pub struct ConvertColors {
5958
pub method: Option<Method>,
@@ -62,7 +61,7 @@ pub struct ConvertColors {
6261
impl<E: Element> Visitor<E> for ConvertColors {
6362
type Error = String;
6463

65-
fn prepare(&mut self, _document: &E, _context_flags: &mut ContextFlags) -> PrepareOutcome {
64+
fn prepare(&mut self, _document: &E, _context_flags: &mut ContextFlags) -> PrepareOutcome {
6665
match self.method {
6766
Some(Method::Value {
6867
names_2_hex,
@@ -82,7 +81,7 @@ impl<E: Element> Visitor<E> for ConvertColors {
8281
}
8382
}
8483

85-
fn element(&mut self, element: &mut E, _context: & mut Context<E>) -> Result<(), String> {
84+
fn element(&mut self, element: &mut E, _context: &mut Context<E>) -> Result<(), String> {
8685
let mask_localname = &"mask".into();
8786
let is_masked = &element.local_name() == mask_localname
8887
|| element.closest_local(mask_localname).is_some();

0 commit comments

Comments
 (0)