pub struct VncClient { /* private fields */ }Expand description
VNC (RFB protocol) remote desktop client.
Implements a lightweight VNC client using raw TCP with tokio. The RFB
protocol is simple enough (handshake → auth → framebuffer updates) that we
avoid heavy C dependencies and implement it directly.
Supported encodings: Raw, CopyRect, Zlib (minimum set). Supported auth: VNC password challenge-response and no-auth.
The actual protocol implementation will be added in a follow-up.
Implementations§
Trait Implementations§
Source§impl DesktopProtocol for VncClient
impl DesktopProtocol for VncClient
Source§fn start_frame_loop<'life0, 'async_trait>(
&'life0 self,
_frame_tx: UnboundedSender<FrameUpdate>,
_cancel: CancellationToken,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn start_frame_loop<'life0, 'async_trait>(
&'life0 self,
_frame_tx: UnboundedSender<FrameUpdate>,
_cancel: CancellationToken,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Start the frame update loop, sending
FrameUpdate messages via the
provided sender until the cancellation token is triggered.Source§fn send_key<'life0, 'async_trait>(
&'life0 self,
_key_code: u32,
_down: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn send_key<'life0, 'async_trait>(
&'life0 self,
_key_code: u32,
_down: bool,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Send a keyboard event to the remote host.
Source§fn send_pointer<'life0, 'async_trait>(
&'life0 self,
_x: u16,
_y: u16,
_button_mask: u8,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn send_pointer<'life0, 'async_trait>(
&'life0 self,
_x: u16,
_y: u16,
_button_mask: u8,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Send a pointer (mouse) event to the remote host.
Source§fn request_full_frame<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn request_full_frame<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Request a full framebuffer update from the remote host.
Source§fn set_clipboard<'life0, 'async_trait>(
&'life0 self,
_text: String,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn set_clipboard<'life0, 'async_trait>(
&'life0 self,
_text: String,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Send clipboard text to the remote session.
Source§fn desktop_size(&self) -> (u16, u16)
fn desktop_size(&self) -> (u16, u16)
Get the remote desktop dimensions (width, height).
Source§fn resize<'life0, 'async_trait>(
&'life0 mut self,
_width: u16,
_height: u16,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn resize<'life0, 'async_trait>(
&'life0 mut self,
_width: u16,
_height: u16,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Request the remote desktop to resize to the given dimensions.
For RDP: sends a display resize request to the server.
For VNC: no-op (VNC does not support server-side resize; client-side scaling is used).
Auto Trait Implementations§
impl Freeze for VncClient
impl RefUnwindSafe for VncClient
impl Send for VncClient
impl Sync for VncClient
impl Unpin for VncClient
impl UnsafeUnpin for VncClient
impl UnwindSafe for VncClient
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
Mutably borrows from an owned value. Read more