#![warn(missing_docs)]
#![warn(rustdoc::broken_intra_doc_links)]
#![warn(rustdoc::missing_crate_level_docs)]
#![cfg_attr(docsrs, feature(doc_cfg))]

//! ticksupply — Official Rust client for the [Ticksupply](https://ticksupply.com) market data API.
//!
//! # Quick Start
//!
//! ```no_run
//! # async fn example() -> ticksupply::Result<()> {
//! let client = ticksupply::Client::new()?;
//! let exchanges = client.exchanges().list().await?;
//! for ex in exchanges {
//!     println!("{}: {}", ex.code, ex.display_name);
//! }
//! # Ok(()) }
//! ```
//!
//! # Modules
//!
//! - [`client`] — [`Client`] and [`ClientBuilder`].
//! - [`error`] — typed [`Error`] variants and the crate-wide [`Result`] alias.
//! - [`pagination`] — [`Page<T>`] shape returned by paginated list endpoints.
//! - [`timestamp`] — [`Nanos`] and [`Timestamp`] wire types and the [`IntoTimestamp`] input trait.
//! - [`decimal`] — [`Decimal`] wire type for decimal amounts.
//! - [`resources`] — one module per API resource (catalog, datastreams, subscriptions, exports, availability, export_schemas, billing).
//!
//! See the [API reference](https://docs.ticksupply.com) for endpoint-level documentation.

pub mod client;
pub mod decimal;
pub mod error;
pub mod pagination;
pub mod resources;
pub mod timestamp;

mod http;

pub use client::{Client, ClientBuilder};
pub use decimal::Decimal;
pub use error::{Error, Result};
pub use pagination::Page;
pub use timestamp::{IntoTimestamp, Nanos, Timestamp};
