#[cfg(feature = "dap")]
pub mod dap;
#[cfg(feature = "lsp")]
pub mod lsp;
mod error;
pub use error::*;
mod msg;
pub use msg::*;
#[cfg(feature = "server")]
pub use server::*;
#[cfg(feature = "server")]
pub mod req_queue;
#[cfg(feature = "server")]
mod server;
#[cfg(all(feature = "server", feature = "system"))]
pub mod transport;
use std::any::Any;
pub use crate::msg::ResponseError;
pub type LspResult<T> = Result<T, ResponseError>;
pub type Event = Box<dyn Any + Send>;
#[cfg(all(feature = "server", feature = "web"))]
fn dummy_transport<M: TryFrom<Message, Error = anyhow::Error> + GetMessageKind>() -> Connection<M> {
let (event_sender, event_receiver) = crossbeam_channel::bounded::<crate::Event>(0);
let (writer_sender, writer_receiver) = crossbeam_channel::bounded::<Message>(0);
Connection {
sender: TConnectionTx {
event: event_sender,
lsp: writer_sender,
marker: std::marker::PhantomData,
},
receiver: TConnectionRx {
event: event_receiver,
lsp: writer_receiver,
marker: std::marker::PhantomData,
},
}
}