[−][src]Struct tower_lsp::Server
Server for processing requests and responses on standard I/O or TCP.
Implementations
impl<I, O> Server<I, O, Nothing> where
I: AsyncRead + Unpin,
O: AsyncWrite,
[src]
I: AsyncRead + Unpin,
O: AsyncWrite,
pub fn new(stdin: I, stdout: O) -> Self
[src]
Creates a new Server
with the given stdin
and stdout
handles.
Examples
Initialize with a standard I/O transport:
let stdin = tokio::io::stdin(); let stdout = tokio::io::stdout(); let server = Server::new(stdin, stdout);
Initialize with a TCP transport:
let mut listener = tokio::net::TcpListener::bind("127.0.0.1:9257").await?; let (stream, _) = listener.accept().await?; let (read, write) = tokio::io::split(stream); let server = Server::new(read, write);
impl<I, O, S> Server<I, O, S> where
I: AsyncRead + Unpin,
O: AsyncWrite,
S: Stream<Item = Outgoing>,
[src]
I: AsyncRead + Unpin,
O: AsyncWrite,
S: Stream<Item = Outgoing>,
pub fn interleave<T>(self, stream: T) -> Server<I, O, T> where
T: Stream<Item = Outgoing>,
[src]
T: Stream<Item = Outgoing>,
Interleaves the given stream of messages into stdout
together with the responses.
pub async fn serve<T>(self, __arg1: T) where
T: Service<Incoming, Response = Option<Outgoing>> + Send + 'static,
T::Error: Into<Box<dyn Error + Send + Sync>>,
T::Future: Send,
[src]
T: Service<Incoming, Response = Option<Outgoing>> + Send + 'static,
T::Error: Into<Box<dyn Error + Send + Sync>>,
T::Future: Send,
Spawns the service with messages read through stdin
and responses written to stdout
.
Trait Implementations
Auto Trait Implementations
impl<I, O, S> RefUnwindSafe for Server<I, O, S> where
I: RefUnwindSafe,
O: RefUnwindSafe,
S: RefUnwindSafe,
I: RefUnwindSafe,
O: RefUnwindSafe,
S: RefUnwindSafe,
impl<I, O, S> Send for Server<I, O, S> where
I: Send,
O: Send,
S: Send,
I: Send,
O: Send,
S: Send,
impl<I, O, S> Sync for Server<I, O, S> where
I: Sync,
O: Sync,
S: Sync,
I: Sync,
O: Sync,
S: Sync,
impl<I, O, S> Unpin for Server<I, O, S> where
I: Unpin,
O: Unpin,
S: Unpin,
I: Unpin,
O: Unpin,
S: Unpin,
impl<I, O, S> UnwindSafe for Server<I, O, S> where
I: UnwindSafe,
O: UnwindSafe,
S: UnwindSafe,
I: UnwindSafe,
O: UnwindSafe,
S: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,