summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <matthias.beyer@ifm.com>2022-09-11 11:18:45 +0200
committerMatthias Beyer <matthias.beyer@ifm.com>2022-09-11 11:19:23 +0200
commit88f5884318972d19226b273786c347cb0c33ca32 (patch)
treef7bba0977a30a9e1ab458f4168b92b45943ed4c4
parent4ed713c087c6ffc97e2c200292ac1d2005b7fa4e (diff)
Add "Rename" message types
Signed-off-by: Matthias Beyer <matthias.beyer@ifm.com>
-rw-r--r--plugins/plugin_fdman/src/message/mod.rs3
-rw-r--r--plugins/plugin_fdman/src/message/rename.rs59
2 files changed, 62 insertions, 0 deletions
diff --git a/plugins/plugin_fdman/src/message/mod.rs b/plugins/plugin_fdman/src/message/mod.rs
index 606070d8..32e11302 100644
--- a/plugins/plugin_fdman/src/message/mod.rs
+++ b/plugins/plugin_fdman/src/message/mod.rs
@@ -1,5 +1,8 @@
mod copy;
pub use self::copy::*;
+mod rename;
+pub use self::rename::*;
+
mod open_options;
pub use self::open_options::*;
diff --git a/plugins/plugin_fdman/src/message/rename.rs b/plugins/plugin_fdman/src/message/rename.rs
new file mode 100644
index 00000000..da58928e
--- /dev/null
+++ b/plugins/plugin_fdman/src/message/rename.rs
@@ -0,0 +1,59 @@
+use std::path::PathBuf;
+
+use tedge_api::Message;
+
+#[derive(Clone, Debug, bevy_reflect::TypeUuid)]
+#[uuid = "1420a7d9-3b8c-4057-8130-7604a481c0b1"]
+pub struct Rename {
+ src: PathBuf,
+ dst: PathBuf,
+}
+
+impl Rename {
+ pub fn new(src: PathBuf, dst: PathBuf) -> Self {
+ Self { src, dst }
+ }
+
+ pub(crate) fn src(&self) -> &PathBuf {
+ &self.src
+ }
+
+ pub(crate) fn dst(&self) -> &PathBuf {
+ &self.dst
+ }
+}
+
+impl Message for Rename {}
+
+impl tedge_api::message::AcceptsReplies for Rename {
+ type Reply = RenameResult;
+}
+
+#[derive(Debug, bevy_reflect::TypeUuid)]
+#[uuid = "450de432-74b8-4c94-8963-f434262eb2d2"]
+pub struct RenameResult {
+ rename: Rename,
+ result: Result<(), RenameError>,
+}
+
+impl RenameResult {
+ pub(crate) fn new(rename: Rename, result: Result<(), RenameError>) -> Self {
+ Self { rename, result }
+ }
+
+ pub fn rename(&self) -> &Rename {
+ &self.rename
+ }
+
+ pub fn into_result(self) -> Result<(), RenameError> {
+ self.result
+ }
+}
+
+impl Message for RenameResult {}
+
+#[derive(Debug, thiserror::Error)]
+pub enum RenameError {
+ #[error("FdMan Plugin error")]
+ FdMan(#[from] crate::error::Error),
+}