aya: `impl AsFd for RingBuf`

This bound is needed for e.g. `smol::Async`.
reviewable/pr1288/r18
Tamir Duberstein 3 days ago
parent 9be2d723ce
commit 3f02127b6b
No known key found for this signature in database

@ -64,7 +64,7 @@ impl<T: BorrowMut<MapData>> AsFd for PerfEventArrayBuffer<T> {
impl<T: BorrowMut<MapData>> AsRawFd for PerfEventArrayBuffer<T> {
fn as_raw_fd(&self) -> RawFd {
self.buf.as_fd().as_raw_fd()
self.as_fd().as_raw_fd()
}
}

@ -9,7 +9,7 @@ use std::{
fmt::{self, Debug, Formatter},
mem,
ops::Deref,
os::fd::{AsFd as _, AsRawFd, BorrowedFd, RawFd},
os::fd::{AsFd, AsRawFd, BorrowedFd, RawFd},
sync::atomic::{AtomicU32, AtomicUsize, Ordering},
};
@ -130,15 +130,20 @@ impl<T> RingBuf<T> {
}
}
/// Access to the RawFd can be used to construct an AsyncFd for use with epoll.
impl<T: Borrow<MapData>> AsRawFd for RingBuf<T> {
fn as_raw_fd(&self) -> RawFd {
impl<T: Borrow<MapData>> AsFd for RingBuf<T> {
fn as_fd(&self) -> BorrowedFd<'_> {
let Self {
map,
consumer: _,
producer: _,
} = self;
map.borrow().fd().as_fd().as_raw_fd()
map.borrow().fd().as_fd()
}
}
impl<T: Borrow<MapData>> AsRawFd for RingBuf<T> {
fn as_raw_fd(&self) -> RawFd {
self.as_fd().as_raw_fd()
}
}

Loading…
Cancel
Save