fmd-adm 0.3.0

Idiomatic Rust bindings for illumos libfmd_adm
Documentation
# fmd-adm

Idiomatic Rust bindings for illumos
[libfmd_adm](https://illumos.org/man/3LIB/libfmd_adm), the Fault
Management Daemon administrative library.

This crate provides a safe wrapper around the raw FFI bindings in
[fmd-adm-sys](../fmd-adm-sys/).

## Usage

```rust
use fmd_adm::FmdAdm;

let adm = FmdAdm::open().expect("failed to connect to fmd");

for module in adm.modules().unwrap() {
    println!("{} v{} - {}", module.name, module.version, module.description);
}

for case in adm.cases(None).unwrap() {
    println!("{} - {}", case.uuid, case.code);
}
```

## API overview

All operations go through the `FmdAdm` handle, which connects to the local
fault management daemon on construction and disconnects on drop.

- **Modules**: `modules()`
- **Resources**: `resources()`, `resource_count()`,
  `resource_repaired()`, `resource_replaced()`, `resource_acquit()`
- **Cases**: `cases()`, `case_acquit()`
- **SERD engines**: `serd_engines()`
- **Transports**: `transports()`
- **Statistics**: `stats()`

## Privileges

Opening a handle does not require elevated privileges, but most query and
mutation operations do. Run with `pfexec` or appropriate RBAC profiles to
access fmd data.