|
@@ -88,7 +88,7 @@ pub struct PatchPen {
|
|
|
}
|
|
|
|
|
|
impl PatchPen {
|
|
|
- fn patch(&self, target: &mut Vec<Pen>) {
|
|
|
+ pub fn patch(&self, target: &mut Vec<Pen>) {
|
|
|
self.patch.patch(self.pen, target);
|
|
|
}
|
|
|
}
|
|
@@ -103,7 +103,7 @@ pub struct ClonePen {
|
|
|
}
|
|
|
|
|
|
impl ClonePen {
|
|
|
- fn clone(&self, target: &mut Vec<Pen>) {
|
|
|
+ pub fn clone(&self, target: &mut Vec<Pen>) {
|
|
|
debug!("Cloning pen #{} to #{}", self.from, self.to);
|
|
|
assert!(
|
|
|
self.to > self.from,
|
|
@@ -139,7 +139,7 @@ pub struct PatternPen {
|
|
|
}
|
|
|
|
|
|
impl PatternPen {
|
|
|
- fn pattern(&self, target: &mut Vec<Pen>) {
|
|
|
+ pub fn pattern(&self, target: &mut Vec<Pen>) {
|
|
|
debug!("Patterning from pen #{} to #{}", self.from, self.to);
|
|
|
assert!(
|
|
|
self.to > self.from,
|
|
@@ -240,32 +240,3 @@ impl PatternPen {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
-#[derive(Debug, Serialize, Deserialize)]
|
|
|
-pub enum PenOperation {
|
|
|
- Patch(PatchPen),
|
|
|
- Clone(ClonePen),
|
|
|
- Pattern(PatternPen),
|
|
|
-}
|
|
|
-
|
|
|
-pub trait PatchPens {
|
|
|
- fn patch(&self, target: &mut Vec<Pen>);
|
|
|
-}
|
|
|
-
|
|
|
-impl PatchPens for Vec<PenOperation> {
|
|
|
- fn patch(&self, target: &mut Vec<Pen>) {
|
|
|
- for op in self {
|
|
|
- match op {
|
|
|
- PenOperation::Patch(x) => x.patch(target),
|
|
|
- PenOperation::Clone(x) => x.clone(target),
|
|
|
- PenOperation::Pattern(x) => x.pattern(target),
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-#[derive(Debug, Serialize, Deserialize)]
|
|
|
-#[serde(rename_all = "PascalCase")]
|
|
|
-pub struct Config {
|
|
|
- pub pens: Vec<PenOperation>,
|
|
|
-}
|