wave-api 0.1.0

Typed Rust client for the Wave Accounting GraphQL API
Documentation
//! # wave-api
//!
//! Typed Rust client for the [Wave Accounting](https://www.waveapps.com/) GraphQL API.
//!
//! `wave_claw` wraps Wave's GraphQL API in idiomatic Rust — no code generation,
//! no raw GraphQL strings in user code. All connection types are flattened into
//! [`Page<T>`] results, monetary values use [`rust_decimal::Decimal`], and
//! mutations use a builder pattern for inputs.
//!
//! ## Quick Start
//!
//! ```rust,no_run
//! use wave_claw::{WaveClient, OAuthConfig, ListBusinessesOptions};
//!
//! # async fn run() -> Result<(), wave_claw::WaveError> {
//! let client = WaveClient::with_oauth(OAuthConfig {
//!     client_id: "...".into(),
//!     client_secret: "...".into(),
//!     access_token: "...".into(),
//!     refresh_token: "...".into(),
//!     redirect_uri: "http://localhost:3099/callback".into(),
//!     on_token_refresh: None,
//! });
//!
//! let businesses = client.list_businesses(Default::default()).await?;
//! for biz in &businesses.items {
//!     println!("{}: {}", biz.id, biz.name);
//! }
//! # Ok(())
//! # }
//! ```

pub mod auth;
pub mod client;
mod client_mutations;
mod client_queries;
pub mod enums;
pub mod error;
pub mod inputs;
pub mod models;
mod mutations;
pub mod options;
pub mod pagination;
mod queries;

// Re-exports for convenience.
pub use auth::OAuthConfig;
pub use client::WaveClient;
pub use error::WaveError;
pub use options::*;
pub use pagination::Page;