Skip to content

Commit bccbe1a

Browse files
committed
Initial support for macros
1 parent b2eae78 commit bccbe1a

File tree

9 files changed

+693
-180
lines changed

9 files changed

+693
-180
lines changed

Cargo.lock

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

lib/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,5 @@ glam = { version = "0.20", features = ["serde"] }
1414
thiserror = "1"
1515
regex = "1"
1616
lazy_static = "1"
17+
minijinja = { version = "^0.18", features = ["source"] }
18+
serde_json = "^1"

lib/src/firmware_retraction.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ pub struct FirmwareRetractionOptions {
1818
pub lift_z: f64,
1919
}
2020

21-
#[derive(Debug)]
21+
#[derive(Debug, Clone, Copy)]
2222
pub enum FirmwareRetractionState {
2323
Unretracted,
2424
Retracted {

lib/src/gcode.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use std::collections::BTreeMap;
22
use std::fmt::Display;
33
use std::io::{self, BufRead};
44

5+
use serde::Serialize;
56
use thiserror::Error;
67

78
#[derive(Debug, PartialEq, PartialOrd, Clone)]
@@ -121,7 +122,7 @@ impl Display for GCodeTraditionalParams {
121122
}
122123
}
123124

124-
#[derive(Debug, PartialEq, PartialOrd, Clone)]
125+
#[derive(Debug, PartialEq, Eq, PartialOrd, Clone, Serialize)]
125126
pub struct GCodeExtendedParams(BTreeMap<String, String>);
126127

127128
impl GCodeExtendedParams {
@@ -279,7 +280,7 @@ mod parser {
279280
fn parse(s: &str) -> IResult<&str, GCodeCommand> {
280281
let (s, _) = space0(s)?;
281282

282-
let (s, _line_no) = opt(line_number)(s)?;
283+
// let (s, _line_no) = opt(line_number)(s)?;
283284

284285
let (s, (op, comment)) = alt((
285286
complete(traditional_gcode),
@@ -314,7 +315,7 @@ mod parser {
314315
}
315316

316317
fn traditional_gcode(s: &str) -> IResult<&str, (GCodeOperation, Option<&str>)> {
317-
let (s, letter) = satisfy(|c| c.is_alphabetic())(s)?;
318+
let (s, letter) = satisfy(|c| matches!(c.to_ascii_lowercase(), 'g' | 'm'))(s)?;
318319
let (s, code) = match lexical_core::parse_partial::<u16>(s.as_bytes()) {
319320
Ok((_, 0)) => return Err(Err::Error(Error::from_error_kind(s, ErrorKind::Digit))),
320321
Ok((value, processed)) => (s.slice(processed..), value),

lib/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ extern crate lazy_static;
44
pub mod firmware_retraction;
55
pub mod gcode;
66
mod kind_tracker;
7+
mod macros;
78
pub mod planner;
89
pub mod slicer;
910

0 commit comments

Comments
 (0)