1#[cfg(feature = "dap")]
4pub mod dap;
5#[cfg(feature = "lsp")]
6pub mod lsp;
7
8mod error;
9pub use error::*;
10
11mod msg;
12pub use msg::*;
13
14#[cfg(feature = "server")]
15pub use server::*;
16#[cfg(feature = "server")]
17pub mod req_queue;
18#[cfg(feature = "server")]
19mod server;
20#[cfg(all(feature = "server", feature = "system"))]
21pub mod transport;
22
23use std::any::Any;
24
25pub use crate::msg::ResponseError;
27pub type LspResult<T> = Result<T, ResponseError>;
29pub type Event = Box<dyn Any + Send>;
31
32#[cfg(feature = "web")]
34fn dummy_transport<M: TryFrom<Message, Error = anyhow::Error> + GetMessageKind>() -> Connection<M> {
35 let (event_sender, event_receiver) = crossbeam_channel::bounded::<crate::Event>(0);
36 let (writer_sender, writer_receiver) = crossbeam_channel::bounded::<Message>(0);
37 Connection {
38 sender: TConnectionTx {
41 event: event_sender,
42 lsp: writer_sender,
43 marker: std::marker::PhantomData,
44 },
45 receiver: TConnectionRx {
46 event: event_receiver,
47 lsp: writer_receiver,
48 marker: std::marker::PhantomData,
49 },
50 }
51}