safe_nd/messaging/
duty.rs

1// Copyright 2020 MaidSafe.net limited.
2//
3// This SAFE Network Software is licensed to you under the MIT license <LICENSE-MIT
4// https://opensource.org/licenses/MIT> or the Modified BSD license <LICENSE-BSD
5// https://opensource.org/licenses/BSD-3-Clause>, at your option. This file may not be copied,
6// modified, or distributed except according to those terms. Please review the Licences for the
7// specific language governing permissions and limitations relating to use of the SAFE Network
8// Software.
9
10use serde::{Deserialize, Serialize};
11
12///
13#[derive(Debug, Hash, Eq, PartialEq, Copy, Clone, Serialize, Deserialize)]
14pub enum Duty {
15    ///
16    Adult(AdultDuties),
17    ///
18    Elder(ElderDuties),
19    ///
20    Node(NodeDuties),
21}
22
23/// Duties of a Node.
24#[derive(Debug, Hash, Eq, PartialEq, Copy, Clone, Serialize, Deserialize)]
25pub enum NodeDuties {
26    /// Config of a node, such as reward wallet.
27    NodeConfig,
28}
29
30/// Duties of an Adult.
31#[derive(Debug, Hash, Eq, PartialEq, Copy, Clone, Serialize, Deserialize)]
32pub enum AdultDuties {
33    /// Keeping and serving chunks.
34    ChunkStorage,
35}
36
37/// Duties of an Elder.
38#[derive(Debug, Hash, Eq, PartialEq, Copy, Clone, Serialize, Deserialize)]
39pub enum ElderDuties {
40    /// Interfacing with clients.
41    Gateway,
42    /// Metadata management.
43    Metadata,
44    /// Payment for data storage etc.
45    Payment,
46    /// Transfers of money.
47    Transfer,
48    /// Rewards for data storage etc.
49    Rewards,
50}