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
/*
* File: clear.rs
* Project: operation
* Created Date: 08/01/2023
* Author: Shun Suzuki
* -----
* Last Modified: 09/01/2023
* Modified By: Shun Suzuki (suzuki@hapis.k.u-tokyo.ac.jp)
* -----
* Copyright (c) 2023 Shun Suzuki. All rights reserved.
*
*/
use super::Operation;
use crate::{TxDatagram, MSG_CLEAR};
use anyhow::Result;
#[derive(Default)]
pub struct Clear {
sent: bool,
}
impl Operation for Clear {
fn pack(&mut self, tx: &mut TxDatagram) -> Result<()> {
tx.header_mut().msg_id = MSG_CLEAR;
tx.num_bodies = 0;
self.sent = true;
Ok(())
}
fn init(&mut self) {
self.sent = false;
}
fn is_finished(&self) -> bool {
self.sent
}
}