Expand description
A generic event source wrapping an IO objects or file descriptor
You can use this general purpose adapter around file-descriptor backed objects to
insert into an EventLoop
.
The event generated by this Generic
event source are the Readiness
notification itself, and the monitored object is provided to your callback as the second
argument.
use calloop::{generic::Generic, Interest, Mode, PostAction};
handle.insert_source(
// wrap your IO object in a Generic, here we register for read readiness
// in level-triggering mode
Generic::new(io_object, Interest::READ, Mode::Level),
|readiness, io_object, shared_data| {
// The first argument of the callback is a Readiness
// The second is a &mut reference to your object
// your callback needs to return a Result<PostAction, std::io::Error>
// if it returns an error, the event loop will consider this event
// event source as erroring and report it to the user.
Ok(PostAction::Continue)
}
);
It can also help you implementing your own event sources: just have
these Generic<_>
as fields of your event source, and delegate the
EventSource
implementation to them.
If you need to directly work with a RawFd
, rather than an
FD-backed object, see Generic::from_fd
.
Structs
- A generic event source wrapping a FD-backed type