use crate::{
impls::{BufferRef, QueueData},
Buffer, Internal, Method, Result,
};
use std::os::unix::io::RawFd;
pub trait DirectionImpl: Sized {
fn next<Met: Method>(
queue: &Internal<QueueData<Self, Met>>,
fd: RawFd,
) -> Result<BufferRef<Self, Met>>;
}
pub trait MethodImpl {
fn init(buffer: &Buffer, fd: RawFd) -> Result<*mut u8>;
fn done(buffer: &Buffer, pointer: *mut u8);
fn update(_buffer: &mut Buffer, _pointer: *mut u8) {}
}