wami-core 0.18.0

Core primitives for wami: ARNs, contexts, errors and shared types
Documentation
# wami-core

Core primitives shared across the WAMI workspace. This crate contains the
fundamental building blocks that other crates depend on, such as ARN parsing,
execution context, error handling, and shared types.

## Features

- **ARN System** – Builders, parsers, and transformers for multi-cloud WAMI
  ARNs (AWS, GCP, Azure, Scaleway, custom).
- **Execution Context**`WamiContext` and session metadata used to scope
  operations.
- **Error Handling**`AmiError`, helper utilities, and the `Result` alias used
  across the workspace.
- **Shared Types** – Strongly typed structures for policies, pagination,
  provider metadata, and more.

## Modules

- `arn` – Builders, parsers, and transformers for WAMI ARNs.
- `context` – Authentication/authorization context and session info.
- `error` – Core error types and helper utilities.
- `types` – Shared data structures (policy documents, pagination, etc.).

## Usage

Add the dependency in your `Cargo.toml`:

```toml
[dependencies]
wami-core = { path = "../wami-core" }
```

Example:

```rust
use wami_core::arn::{TenantPath, WamiArn};
use wami_core::context::WamiContext;

let context = WamiContext::builder()
    .instance_id("123456789012")
    .tenant_path(TenantPath::single(0))
    .caller_arn(
        WamiArn::builder()
            .service(wami_core::arn::Service::Iam)
            .tenant(0)
            .wami_instance("123456789012")
            .resource("user", "admin")
            .build()
            .unwrap(),
    )
    .is_root(false)
    .build()
    .unwrap();
```

## License

Licensed under MIT. See [`../LICENSE`](../../LICENSE) for details.