sapi-lite 0.1.1

A simplified wrapper around Microsoft's Speech API (SAPI) library
Documentation
use std::mem::MaybeUninit;

use crate::Result;

mod intf;
mod iter;
mod locale;
mod mem;
mod str;
mod weak;

pub use self::intf::Intf;
pub use self::iter::{next_elem, next_obj};
pub use self::locale::Locale;
pub use self::mem::ComBox;
pub use self::str::{from_wide, opt_str_param};
pub use self::weak::MaybeWeak;

pub unsafe fn out_to_ret<T, F: FnOnce(*mut T) -> Result<()>>(f: F) -> Result<T> {
    let mut result = MaybeUninit::uninit();
    f(result.as_mut_ptr())?;
    Ok(result.assume_init())
}