Rust 如何在防锈漆中使用epoll

Rust 如何在防锈漆中使用epoll,rust,epoll,Rust,Epoll,我偶然发现库在rust中支持epoll,但我不确定如何正确使用epoll:wait函数: let mut events = [Event; 10]; rc = epoll::wait(self.vfio_epoll_fd, timeout, &mut events)?; 如果有人能给我举一些例子,我会很高兴的:)提前感谢你们的支持 编译上述代码时出现以下错误: 错误[E0423]:预期值,找到struct`Event` -->src/interrupts.rs:132:27 | 132

我偶然发现库在rust中支持
epoll
,但我不确定如何正确使用
epoll:wait
函数:

let mut events = [Event; 10];
rc = epoll::wait(self.vfio_epoll_fd, timeout, &mut events)?;
如果有人能给我举一些例子,我会很高兴的:)提前感谢你们的支持

编译上述代码时出现以下错误:

错误[E0423]:预期值,找到struct`Event`
-->src/interrupts.rs:132:27
|
132 |让mut events=[Event;10];
|^^^^^^你是说“事件{/*字段*/}”吗?
事件结构如下所示:

pub struct Event {
    pub events: Events,
    pub data: u64,
}

问题是我不知道什么是
Events
,因为它是一个位标志。

因为
Events
epoll::wait
的一个输出参数,您可以在其中输入任何内容,但需要输入有效值。合理的默认值是空事件集:

let mut events = [Event::empty(); 10];

事件
是由
位标志
宏生成的结构,因此查看源代码对理解如何使用它没有多大帮助,但幸运的是,
位标志
也为生成的结构生成了相当全面的数据。

您到底有什么问题?@mcarton如何定义事件数组?您显示的代码会发生什么情况?它不能编译吗?用什么信息?它不能运行吗?用什么信息?它是否运行但没有达到您的预期?您期望得到什么以及它做了什么?@Jmb查看更新的答案
,因为它是一个位标志
——它不是位标志,而是一个结构。您是否签出了?对我不起作用我在
Event::empty()上的“epoll::Event”中未找到
函数或关联项
确定现在找到了解决方案:
让mut events=[Event::new(events::empty(),0);10]感谢您的支持:)