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