diff options
author | Matthias Beyer <matthias.beyer@ifm.com> | 2022-09-11 11:18:45 +0200 |
---|---|---|
committer | Matthias Beyer <matthias.beyer@ifm.com> | 2022-09-11 11:19:23 +0200 |
commit | 88f5884318972d19226b273786c347cb0c33ca32 (patch) | |
tree | f7bba0977a30a9e1ab458f4168b92b45943ed4c4 | |
parent | 4ed713c087c6ffc97e2c200292ac1d2005b7fa4e (diff) |
Add "Rename" message types
Signed-off-by: Matthias Beyer <matthias.beyer@ifm.com>
-rw-r--r-- | plugins/plugin_fdman/src/message/mod.rs | 3 | ||||
-rw-r--r-- | plugins/plugin_fdman/src/message/rename.rs | 59 |
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), +} |