1use std::io;
4
5use crate::Ring;
6
7#[derive(Debug, Clone)]
11#[must_use = "no ring is created until `a10::Config::build` is called"]
12pub struct Config<'r> {
13 pub(crate) queued_operations: usize,
14 pub(crate) sys: crate::sys::config::Config<'r>,
16}
17
18impl<'r> Config<'r> {
19 #[doc(alias = "kqueue")]
21 #[doc(alias = "io_uring_setup")]
22 pub fn build(self) -> io::Result<Ring> {
23 let queued_operations = self.queued_operations;
25 let (submissions, shared, completions) = self.build_sys()?;
26 let ring = Ring::build(submissions, shared, completions, queued_operations);
27 Ok(ring)
28 }
29}