diff --git a/gpx-rs/engine/src/engine/command/command.rs b/gpx-rs/engine/src/engine/command/command.rs index 935987ac1..68037faec 100644 --- a/gpx-rs/engine/src/engine/command/command.rs +++ b/gpx-rs/engine/src/engine/command/command.rs @@ -1,9 +1,9 @@ -use crate::{ - Append, Clean, Crop, Delete, DeleteAll, Duplicate, Elevation, Extract, Load, Merge, Metadata, - MoveWaypoint, New, NewTrack, NewTrackSegment, NewWaypoint, Replace, Reverse, Split, Style, - Time, -}; use crate::{Apply, CommandError, State}; +use crate::{ + Clean, Crop, Delete, DeleteAll, Duplicate, Elevation, Extract, Load, Merge, Metadata, + MoveWaypoint, New, NewTrack, NewTrackSegment, NewWaypoint, Reverse, SpliceTrackpoints, Split, + Style, Time, +}; /// A user action that edits the files. Each variant wraps the command's own struct, whose /// effect is implemented in its own file (see `Apply`). @@ -22,8 +22,7 @@ pub enum Command<'a> { NewTrack(NewTrack), NewTrackSegment(NewTrackSegment), Reverse(Reverse), - Append(Append<'a>), - Replace(Replace<'a>), + SpliceTrackpoints(SpliceTrackpoints<'a>), NewWaypoint(NewWaypoint<'a>), MoveWaypoint(MoveWaypoint), Crop(Crop), @@ -48,8 +47,7 @@ impl Apply for Command<'_> { Command::NewTrack(c) => c.apply(state), Command::NewTrackSegment(c) => c.apply(state), Command::Reverse(c) => c.apply(state), - Command::Append(c) => c.apply(state), - Command::Replace(c) => c.apply(state), + Command::SpliceTrackpoints(c) => c.apply(state), Command::NewWaypoint(c) => c.apply(state), Command::MoveWaypoint(c) => c.apply(state), Command::Crop(c) => c.apply(state), diff --git a/gpx-rs/engine/src/engine/command/tools/append.rs b/gpx-rs/engine/src/engine/command/tools/append.rs deleted file mode 100644 index 91b86d829..000000000 --- a/gpx-rs/engine/src/engine/command/tools/append.rs +++ /dev/null @@ -1,15 +0,0 @@ -use crate::{Apply, CommandError, State}; - -#[derive(Debug)] -pub struct Append<'a> { - pub lng: &'a [f64], - pub lat: &'a [f64], - pub ele: &'a [f64], -} - -impl Apply for Append<'_> { - fn apply(self, _state: &mut State) -> Result<(), CommandError> { - // TODO - Err(CommandError::NotImplemented("append")) - } -} diff --git a/gpx-rs/engine/src/engine/command/tools/mod.rs b/gpx-rs/engine/src/engine/command/tools/mod.rs index 48550ddec..ab19aea2b 100644 --- a/gpx-rs/engine/src/engine/command/tools/mod.rs +++ b/gpx-rs/engine/src/engine/command/tools/mod.rs @@ -1,4 +1,3 @@ -mod append; mod clean; mod crop; mod elevation; @@ -6,12 +5,11 @@ mod extract; mod merge; mod move_waypoint; mod new_waypoint; -mod replace; mod reverse; +mod splice_trackpoints; mod split; mod time; -pub use append::*; pub use clean::*; pub use crop::*; pub use elevation::*; @@ -19,7 +17,7 @@ pub use extract::*; pub use merge::*; pub use move_waypoint::*; pub use new_waypoint::*; -pub use replace::*; pub use reverse::*; +pub use splice_trackpoints::*; pub use split::*; pub use time::*; diff --git a/gpx-rs/engine/src/engine/command/tools/replace.rs b/gpx-rs/engine/src/engine/command/tools/splice_trackpoints.rs similarity index 65% rename from gpx-rs/engine/src/engine/command/tools/replace.rs rename to gpx-rs/engine/src/engine/command/tools/splice_trackpoints.rs index 430993f22..18207a574 100644 --- a/gpx-rs/engine/src/engine/command/tools/replace.rs +++ b/gpx-rs/engine/src/engine/command/tools/splice_trackpoints.rs @@ -1,7 +1,7 @@ use crate::{Apply, CommandError, State}; #[derive(Debug)] -pub struct Replace<'a> { +pub struct SpliceTrackpoints<'a> { pub start: u32, pub end: u32, pub lng: &'a [f64], @@ -9,9 +9,9 @@ pub struct Replace<'a> { pub ele: &'a [f64], } -impl Apply for Replace<'_> { +impl Apply for SpliceTrackpoints<'_> { fn apply(self, _state: &mut State) -> Result<(), CommandError> { // TODO - Err(CommandError::NotImplemented("replace")) + Err(CommandError::NotImplemented("splice_trackpoints")) } } diff --git a/gpx-rs/wasm/src/lib.rs b/gpx-rs/wasm/src/lib.rs index 637208f02..bec6f55e2 100644 --- a/gpx-rs/wasm/src/lib.rs +++ b/gpx-rs/wasm/src/lib.rs @@ -182,15 +182,10 @@ pub fn reverse() -> bool { } #[wasm_bindgen] -pub fn append(lng: &[f64], lat: &[f64], ele: &[f64]) -> bool { - same_len(lng, lat, ele) && edit(Command::Append(engine::Append { lng, lat, ele })) -} - -#[wasm_bindgen] -pub fn replace(start: u32, end: u32, lng: &[f64], lat: &[f64], ele: &[f64]) -> bool { +pub fn splice_trackpoints(start: u32, end: u32, lng: &[f64], lat: &[f64], ele: &[f64]) -> bool { start <= end && same_len(lng, lat, ele) - && edit(Command::Replace(engine::Replace { + && edit(Command::SpliceTrackpoints(engine::SpliceTrackpoints { start, end, lng,