/ example / dchat / dchatd / src / dchatmsg.rs
dchatmsg.rs
 1  /* This file is part of DarkFi (https://dark.fi)
 2   *
 3   * Copyright (C) 2020-2025 Dyne.org foundation
 4   *
 5   * This program is free software: you can redistribute it and/or modify
 6   * it under the terms of the GNU Affero General Public License as
 7   * published by the Free Software Foundation, either version 3 of the
 8   * License, or (at your option) any later version.
 9   *
10   * This program is distributed in the hope that it will be useful,
11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   * GNU Affero General Public License for more details.
14   *
15   * You should have received a copy of the GNU Affero General Public License
16   * along with this program.  If not, see <https://www.gnu.org/licenses/>.
17   */
18  
19  // ANCHOR: msg
20  use smol::lock::Mutex;
21  use std::sync::Arc;
22  
23  use darkfi::{
24      impl_p2p_message,
25      net::{
26          metering::{MeteringConfiguration, DEFAULT_METERING_CONFIGURATION},
27          Message,
28      },
29  };
30  use darkfi_serial::{async_trait, SerialDecodable, SerialEncodable};
31  
32  pub type DchatMsgsBuffer = Arc<Mutex<Vec<DchatMsg>>>;
33  
34  #[derive(Debug, Clone, SerialEncodable, SerialDecodable)]
35  pub struct DchatMsg {
36      pub msg: String,
37  }
38  
39  impl_p2p_message!(DchatMsg, "DchatMsg", 0, 0, DEFAULT_METERING_CONFIGURATION);
40  // ANCHOR_END: msg