//! Async Rust client for the [RANDOM.ORG JSON-RPC API (Release 4)](https://api.random.org/json-rpc/4).
//!
//! ## Features
//! - Basic generation: integers, integer sequences (uniform + multiform),
//!   decimal fractions, gaussians, strings, UUIDs, blobs, usage.
//! - Signed generation (all of the above) with `userData`, `ticketId`,
//!   `licenseData` support and `getResult` / `verifySignature` retrieval.
//! - Tickets: `createTickets`, `getTicket`, `listTickets`, `revealTickets`.
//! - Verification helpers: `create_url`, `create_html` (client-side string
//!   builders mirroring the Python lib helpers).
//!
//! ## Quick start
//! ```no_run
//! use randomorg_rpc::{Client, IntegersParams};
//!
//! # async fn run() -> Result<(), randomorg_rpc::Error> {
//! let client = Client::new(std::env::var("RANDOM_ORG_API_KEY").unwrap());
//! let r = client
//!     .generate_integers(IntegersParams::new(5, 1, 100))
//!     .await?;
//! println!("{:?}", r.random.data);
//! # Ok(()) }
//! ```
//!
//! ## Signature verification
//! random.org does not publish their RSA public key, so signed responses can
//! only be checked through the server-side
//! [`Client::verify_signature`] RPC.

pub mod basic;
pub mod client;
pub mod error;
pub mod jsonrpc;
pub mod params;
pub mod signed;
pub mod tickets;
pub mod types;
pub mod verify;

pub use crate::client::Client;
pub use crate::error::Error;
pub use crate::params::*;
pub use crate::types::*;
