bgpkit-parser 0.16.0

MRT/BGP/BMP data processing library
Documentation
use crate::rislive::messages::{RisLiveClientMessage, RisSubscribe};
use serde::Serialize;

#[derive(Default, Debug, Serialize)]
pub struct RisUnsubscribe {
    #[serde(flatten)]
    data: RisSubscribe,
}

impl RisUnsubscribe {
    pub fn new(subscribe: RisSubscribe) -> Self {
        Self { data: subscribe }
    }
}

impl RisLiveClientMessage for RisUnsubscribe {
    fn msg_type(&self) -> &'static str {
        "ris_unsubscribe"
    }
}

#[cfg(test)]
mod tests {
    use super::*;
    use crate::rislive::messages::client::ris_subscribe::RisSubscribeType;

    #[test]
    fn test_subscribe() {
        let subscribe = RisSubscribe::new()
            .host("rrc00")
            .data_type(RisSubscribeType::UPDATE)
            .acknowledge(true);
        let unsubscribe = RisUnsubscribe::new(subscribe);

        assert_eq!(unsubscribe.msg_type(), "ris_unsubscribe");

        println!("{}", unsubscribe.to_json_string());
    }
}