dofus-framework 0.1.16

This crate contains modules and functions that help sustain a dofus emulator binary application
Documentation
use crate::dofus::realm::application::realm::RealmError;
use crate::dofus::realm::application::realm_handle::RealmMessage::Stop;
use tokio::sync::mpsc::Sender;
use tokio::task::JoinHandle;

pub enum RealmMessage {
    Stop,
}

pub struct RealmHandle {
    sender: Sender<RealmMessage>,
    join: JoinHandle<Result<(), RealmError>>,
}

impl RealmHandle {
    pub fn new(sender: Sender<RealmMessage>, join: JoinHandle<Result<(), RealmError>>) -> Self {
        RealmHandle { sender, join }
    }

    pub async fn stop(self) {
        let _ = self.sender.try_send(Stop);
        let _ = self.join.await;
    }
}