Skip to content

Commit fd700bb

Browse files
authored
Refactor for many backends (#111)
* Remove commented out code * Update lyon_geom * Fix debug assertions warning * Reorganize in preparation for multi-backend support
1 parent 06dc7c6 commit fd700bb

67 files changed

Lines changed: 3284 additions & 3017 deletions

Some content is hidden

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

Cargo.lock

Lines changed: 22 additions & 22 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[workspace]
2-
members = ["lib", "cli", "web"]
2+
members = ["g_code", "cli", "web", "star"]
33
default-members = ["cli"]
44
resolver = "2"
55

@@ -12,6 +12,7 @@ license = "MIT"
1212
[workspace.dependencies]
1313
g-code = "0.6.0"
1414
log = "0"
15+
lyon_geom = "=1.0.19"
1516
roxmltree = "0.21"
1617
serde_json = "1"
1718
svgtypes = "0.16"

cli/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ repository.workspace = true
88
license.workspace = true
99

1010
[dependencies]
11-
svg2gcode = { path = "../lib", version = "0.3.4", features = ["serde"] }
11+
svg2gcode = { path = "../g_code", version = "0.4.0", features = ["serde"] }
1212
env_logger = "0.11"
1313
log.workspace = true
1414
g-code.workspace = true

cli/src/main.rs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#![cfg_attr(not(test), deny(unused_crate_dependencies))]
2+
13
use std::{
24
env,
35
fs::File,
@@ -14,7 +16,9 @@ use g_code::{
1416
use log::{error, info};
1517
use roxmltree::ParsingOptions;
1618
use svg2gcode::{
17-
ConversionOptions, Machine, Settings, SupportedFunctionality, Version, svg2program,
19+
Machine,
20+
config::{ConversionOptions, Settings, SupportedFunctionality, Version},
21+
svg_to_gcode,
1822
};
1923
use svgtypes::LengthListParser;
2024

@@ -122,7 +126,7 @@ fn main() -> io::Result<()> {
122126

123127
{
124128
let conversion = &mut settings.conversion;
125-
conversion.dpi = opt.dpi.unwrap_or(conversion.dpi);
129+
conversion.inner.dpi = opt.dpi.unwrap_or(conversion.inner.dpi);
126130
conversion.feedrate = opt.feedrate.unwrap_or(conversion.feedrate);
127131
conversion.tolerance = opt.tolerance.unwrap_or(conversion.tolerance);
128132
}
@@ -160,7 +164,7 @@ fn main() -> io::Result<()> {
160164
.take(2)
161165
.enumerate()
162166
{
163-
settings.conversion.origin[i] = Some(dimension_origin);
167+
settings.conversion.inner.origin[i] = Some(dimension_origin);
164168
}
165169
}
166170
}
@@ -177,12 +181,12 @@ fn main() -> io::Result<()> {
177181
settings.postprocess.newline_before_comment = newline_before_comment;
178182
}
179183

180-
settings.conversion.extra_attribute_name = opt.extra_attribute_name;
184+
settings.conversion.inner.extra_attribute_name = opt.extra_attribute_name;
181185
if let Some(optimize_path_order) = opt.optimize_path_order {
182-
settings.conversion.optimize_path_order = optimize_path_order;
186+
settings.conversion.inner.optimize_path_order = optimize_path_order;
183187
}
184188
if let Some(selector_filter) = opt.selector_filter {
185-
settings.conversion.selector_filter = Some(selector_filter);
189+
settings.conversion.inner.selector_filter = Some(selector_filter);
186190
}
187191

188192
if let Version::Unknown(ref unknown) = settings.version {
@@ -334,7 +338,7 @@ fn main() -> io::Result<()> {
334338
)
335339
.unwrap();
336340

337-
let program = svg2program(&document, &settings.conversion, options, machine);
341+
let program = svg_to_gcode(&document, &settings.conversion, options, machine);
338342

339343
if let Some(out_path) = opt.out {
340344
format_gcode_io(
Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,21 @@
11
[package]
22
name = "svg2gcode"
3-
version = "0.3.4"
3+
version = "0.4.0"
44
description = "Convert paths in SVG files to GCode for a pen plotter, laser engraver, or other machine."
55
authors.workspace = true
66
edition.workspace = true
77
repository.workspace = true
88
license.workspace = true
99

1010
[features]
11-
serde = ["dep:serde", "dep:serde_repr", "g-code/serde"]
11+
serde = ["dep:serde", "g-code/serde", "svg2star/serde"]
1212

1313
[dependencies]
14+
svg2star = { path = "../star", version = "0.4.0" }
1415
g-code.workspace = true
15-
peg = "0.8"
16-
rand = "0.8"
17-
rustc-hash = "1"
1816
rust_decimal = { version = "1", default-features = false }
19-
lyon_geom = "=1.0.6"
20-
euclid = "0.22"
21-
log.workspace = true
22-
uom = "0.38"
17+
lyon_geom.workspace = true
2318
roxmltree.workspace = true
24-
svgtypes.workspace = true
2519
paste = "1"
2620

2721
[dependencies.serde]
@@ -30,10 +24,7 @@ optional = true
3024
version = "1"
3125
features = ["derive", "std"]
3226

33-
[dependencies.serde_repr]
34-
optional = true
35-
version = "0.1"
36-
3727
[dev-dependencies]
3828
serde_json.workspace = true
3929
pretty_assertions = "1.4.1"
30+
svgtypes.workspace = true

0 commit comments

Comments
 (0)