Skip to main content

contextvm_sdk/rmcp_transport/
transport.rs

1//! rmcp transport integration for raw ContextVM Nostr transports.
2
3use crate::{
4    core::error::Error,
5    rmcp_transport::worker::{NostrClientWorker, NostrServerWorker},
6    transport::{client::NostrClientTransport, server::NostrServerTransport},
7};
8
9impl rmcp::transport::IntoTransport<rmcp::RoleServer, Error, rmcp::transport::worker::WorkerAdapter>
10    for NostrServerTransport
11{
12    /// Convert the raw server transport into rmcp's transport model via the
13    /// worker bridge.
14    fn into_transport(
15        self,
16    ) -> impl rmcp::transport::Transport<rmcp::RoleServer, Error = Error> + 'static {
17        NostrServerWorker::from_transport(self).into_transport()
18    }
19}
20
21impl rmcp::transport::IntoTransport<rmcp::RoleClient, Error, rmcp::transport::worker::WorkerAdapter>
22    for NostrClientTransport
23{
24    /// Convert the raw client transport into rmcp's transport model via the
25    /// worker bridge.
26    fn into_transport(
27        self,
28    ) -> impl rmcp::transport::Transport<rmcp::RoleClient, Error = Error> + 'static {
29        NostrClientWorker::from_transport(self).into_transport()
30    }
31}