rmux-server 0.8.0

Tokio daemon and request dispatcher for the RMUX terminal multiplexer.
Documentation
use rmux_proto::{ErrorResponse, HasSessionResponse, Response};

use super::super::{resolve_session_lookup, RequestHandler, SessionLookup};

impl RequestHandler {
    pub(in crate::handler) async fn handle_has_session(
        &self,
        request: rmux_proto::HasSessionRequest,
    ) -> Response {
        let state = self.state.lock().await;
        let exists = match resolve_session_lookup(&state.sessions, "has-session", &request.target) {
            Ok(SessionLookup::Found(_)) => true,
            Ok(SessionLookup::Missing) => false,
            Err(error) => return Response::Error(ErrorResponse { error }),
        };

        Response::HasSession(HasSessionResponse { exists })
    }
}