fastly 0.13.0

Fastly Compute API
Documentation
use fastly_shared::FastlyStatus;
use fastly_sys::fastly_async_io;

pub(crate) fn is_ready(handle: u32) -> Result<bool, FastlyStatus> {
    let mut ready_out = 0_u32;
    unsafe { fastly_async_io::is_ready(handle, &mut ready_out) }.result()?;
    Ok(ready_out != 0)
}

pub(crate) fn select(handles: &[u32]) -> Result<usize, FastlyStatus> {
    let mut done_index = 0_u32;
    let status = unsafe {
        fastly_async_io::select(
            handles.as_ptr(),
            handles.len(),
            0, // wait indefinitely
            &mut done_index,
        )
    };
    status.result()?;
    Ok(done_index as usize)
}