#![allow(dead_code)]
#![cfg_attr(feature = "nightly", feature(min_specialization, try_trait_v2))]
#![doc = include_str!("../README.md")]
#[cfg(not(target_os = "windows"))]
compile_error!("supported on windows only");
mod database;
mod error;
mod ffi;
mod record;
mod session;
mod view;
pub use database::Database;
#[cfg(feature = "nightly")]
pub use error::experimental::CustomActionResult;
pub use error::{Error, ErrorKind, Result};
pub use record::{Field, Record};
pub use session::{MessageType, RunMode, Session};
pub use view::{ModifyMode, View};
pub mod prelude {
#[cfg(feature = "nightly")]
pub use crate::error::experimental::CustomActionResult::{self, *};
pub use crate::{
Database, Error, Field, MessageType, ModifyMode, Record, Result, RunMode, Session, View,
};
}
pub fn last_error_record() -> Option<Record> {
unsafe {
match ffi::MsiGetLastErrorRecord() {
h if !h.is_null() => Some(Record::from_handle(h)),
_ => None,
}
}
}