open-coroutine-core 0.7.0

The open-coroutine is a simple, efficient and generic coroutine library.
Documentation
use libc::{sockaddr, socklen_t};
use std::ffi::c_int;

trait AcceptSyscall {
    extern "C" fn accept(
        &self,
        fn_ptr: Option<&extern "C" fn(c_int, *mut sockaddr, *mut socklen_t) -> c_int>,
        fd: c_int,
        address: *mut sockaddr,
        address_len: *mut socklen_t,
    ) -> c_int;
}

impl_syscall!(AcceptSyscallFacade, IoUringAcceptSyscall, NioAcceptSyscall, RawAcceptSyscall,
    accept(fd: c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> c_int
);

impl_facade!(AcceptSyscallFacade, AcceptSyscall,
    accept(fd: c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> c_int
);

impl_io_uring_read!(IoUringAcceptSyscall, AcceptSyscall,
    accept(fd: c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> c_int
);

impl_nio_read!(NioAcceptSyscall, AcceptSyscall,
    accept(fd: c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> c_int
);

impl_raw!(RawAcceptSyscall, AcceptSyscall,
    accept(fd: c_int, address: *mut sockaddr, address_len: *mut socklen_t) -> c_int
);