summaryrefslogtreecommitdiffstats
path: root/plugins/plugin_fdman/src/message/rename.rs
blob: da58928e0c0d4fea24b7f0a8462d1ec70628c475 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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),
}