use o3::{depot, depot::map::Plan};
use crate::{
io::reactor::{
complete,
ready::{Driver, store::Context},
},
memory::buffer,
table,
table::permit,
};
pub struct Build<C: Driver + ?Sized> {
pub receive: <<C::Context as Context>::Pool as buffer::Pool>::Layout,
pub slots: <<C::Context as Context>::Slots as table::raw::Slots>::Layout,
pub plan: Plan,
pub capacity: <C::Queue as complete::Queue>::Capacity,
}
pub trait Config<G>: Driver {
type Key: permit::raw::Key;
type Index: depot::raw::Compact;
fn config(config: &G) -> Build<Self>;
}