pub struct Connection<S> { /* private fields */ }Expand description
A connection in a specific state.
The type parameter S represents the current state of the connection.
Different methods are available depending on the state.
Implementations§
Source§impl Connection<Disconnected>
impl Connection<Disconnected>
Sourcepub fn connect(self) -> Connection<Connected>
pub fn connect(self) -> Connection<Connected>
Establish the connection (transition to Connected state).
In a real implementation, this would take a transport and establish the connection. Here we just transition the state.
Source§impl Connection<Connected>
impl Connection<Connected>
Sourcepub const fn connected_at(&self) -> Option<Instant>
pub const fn connected_at(&self) -> Option<Instant>
Get when the connection was established.
Sourcepub fn initialize(
self,
client_info: ClientInfo,
client_capabilities: ClientCapabilities,
) -> (Connection<Initializing>, InitializeRequest)
pub fn initialize( self, client_info: ClientInfo, client_capabilities: ClientCapabilities, ) -> (Connection<Initializing>, InitializeRequest)
Begin initialization (transition to Initializing state).
For clients: Send initialize request with client info and capabilities. For servers: This is called when receiving an initialize request.
Sourcepub fn disconnect(self) -> Connection<Disconnected>
pub fn disconnect(self) -> Connection<Disconnected>
Disconnect (transition back to Disconnected state).
Source§impl Connection<Initializing>
impl Connection<Initializing>
Sourcepub const fn client_info(&self) -> Option<&ClientInfo>
pub const fn client_info(&self) -> Option<&ClientInfo>
Get the client info.
Sourcepub const fn client_capabilities(&self) -> Option<&ClientCapabilities>
pub const fn client_capabilities(&self) -> Option<&ClientCapabilities>
Get the client capabilities.
Sourcepub fn complete(
self,
server_info: ServerInfo,
server_capabilities: ServerCapabilities,
) -> Connection<Ready>
pub fn complete( self, server_info: ServerInfo, server_capabilities: ServerCapabilities, ) -> Connection<Ready>
Complete initialization (transition to Ready state).
This is called after the initialize response is received (client) or sent (server).
Sourcepub fn abort(self) -> Connection<Disconnected>
pub fn abort(self) -> Connection<Disconnected>
Abort initialization (transition back to Disconnected).
Source§impl Connection<Ready>
impl Connection<Ready>
Sourcepub const fn connected_at(&self) -> Option<Instant>
pub const fn connected_at(&self) -> Option<Instant>
Get when the connection was established.
Sourcepub const fn last_activity(&self) -> Option<Instant>
pub const fn last_activity(&self) -> Option<Instant>
Get the last activity timestamp.
Sourcepub fn client_info(&self) -> &ClientInfo
pub fn client_info(&self) -> &ClientInfo
Get the client info.
§Panics
This should never panic if the connection was properly initialized,
as the typestate pattern ensures this is only callable in Ready state.
Use try_client_info() for a fallible version.
Sourcepub const fn try_client_info(&self) -> Option<&ClientInfo>
pub const fn try_client_info(&self) -> Option<&ClientInfo>
Try to get the client info.
Returns None if the client info was not set (should not happen in normal use).
Sourcepub fn server_info(&self) -> &ServerInfo
pub fn server_info(&self) -> &ServerInfo
Get the server info.
§Panics
This should never panic if the connection was properly initialized,
as the typestate pattern ensures this is only callable in Ready state.
Use try_server_info() for a fallible version.
Sourcepub const fn try_server_info(&self) -> Option<&ServerInfo>
pub const fn try_server_info(&self) -> Option<&ServerInfo>
Try to get the server info.
Returns None if the server info was not set (should not happen in normal use).
Sourcepub fn client_capabilities(&self) -> &ClientCapabilities
pub fn client_capabilities(&self) -> &ClientCapabilities
Get the client capabilities.
§Panics
This should never panic if the connection was properly initialized,
as the typestate pattern ensures this is only callable in Ready state.
Use try_client_capabilities() for a fallible version.
Sourcepub const fn try_client_capabilities(&self) -> Option<&ClientCapabilities>
pub const fn try_client_capabilities(&self) -> Option<&ClientCapabilities>
Try to get the client capabilities.
Returns None if the client capabilities were not set (should not happen in normal use).
Sourcepub fn server_capabilities(&self) -> &ServerCapabilities
pub fn server_capabilities(&self) -> &ServerCapabilities
Get the server capabilities.
§Panics
This should never panic if the connection was properly initialized,
as the typestate pattern ensures this is only callable in Ready state.
Use try_server_capabilities() for a fallible version.
Sourcepub const fn try_server_capabilities(&self) -> Option<&ServerCapabilities>
pub const fn try_server_capabilities(&self) -> Option<&ServerCapabilities>
Try to get the server capabilities.
Returns None if the server capabilities were not set (should not happen in normal use).
Sourcepub fn next_request_id(&mut self) -> RequestId
pub fn next_request_id(&mut self) -> RequestId
Generate the next request ID.
Sourcepub fn is_idle(&self, timeout: Duration) -> bool
pub fn is_idle(&self, timeout: Duration) -> bool
Check if the connection has been idle for longer than the given duration.
Sourcepub fn shutdown(self) -> Connection<Closing>
pub fn shutdown(self) -> Connection<Closing>
Begin shutdown (transition to Closing state).
Source§impl Connection<Closing>
impl Connection<Closing>
Sourcepub fn close(self) -> Connection<Disconnected>
pub fn close(self) -> Connection<Disconnected>
Complete the shutdown (transition to Disconnected state).
Trait Implementations§
Source§impl<S: Debug> Debug for Connection<S>
impl<S: Debug> Debug for Connection<S>
Source§impl Default for Connection<Disconnected>
impl Default for Connection<Disconnected>
Auto Trait Implementations§
impl<S> Freeze for Connection<S>
impl<S> RefUnwindSafe for Connection<S>where
S: RefUnwindSafe,
impl<S> Send for Connection<S>where
S: Send,
impl<S> Sync for Connection<S>where
S: Sync,
impl<S> Unpin for Connection<S>where
S: Unpin,
impl<S> UnwindSafe for Connection<S>where
S: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more