Struct wayland_backend::rs::socket::Socket
source · pub struct Socket {
stream: UnixStream,
}
Expand description
A wayland socket
Fields§
§stream: UnixStream
Implementations§
source§impl Socket
impl Socket
sourcepub fn send_msg(&self, bytes: &[u8], fds: &[OwnedFd]) -> IoResult<usize>
pub fn send_msg(&self, bytes: &[u8], fds: &[OwnedFd]) -> IoResult<usize>
Send a single message to the socket
A single socket message can contain several wayland messages
The fds
slice should not be longer than MAX_FDS_OUT
, and the bytes
slice should not be longer than MAX_BYTES_OUT
otherwise the receiving
end may lose some data.
sourcepub fn rcv_msg(
&self,
buffer: &mut [u8],
fds: &mut VecDeque<OwnedFd>,
) -> IoResult<usize>
pub fn rcv_msg( &self, buffer: &mut [u8], fds: &mut VecDeque<OwnedFd>, ) -> IoResult<usize>
Receive a single message from the socket
Return the number of bytes received and the number of Fds received.
Errors with WouldBlock
is no message is available.
A single socket message can contain several wayland messages.
The buffer
slice should be at least MAX_BYTES_OUT
long and the fds
slice MAX_FDS_OUT
long, otherwise some data of the received message may
be lost.
Trait Implementations§
source§impl AsFd for Socket
impl AsFd for Socket
source§fn as_fd(&self) -> BorrowedFd<'_>
fn as_fd(&self) -> BorrowedFd<'_>
Borrows the file descriptor. Read more
source§impl From<UnixStream> for Socket
impl From<UnixStream> for Socket
source§fn from(stream: UnixStream) -> Self
fn from(stream: UnixStream) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for Socket
impl RefUnwindSafe for Socket
impl Send for Socket
impl Sync for Socket
impl Unpin for Socket
impl UnwindSafe for Socket
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
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.