wc_data/lib.rs
1//! Data layer for the World Cup 2026 TUI.
2//!
3//! This crate is provider-agnostic: a normalized [`domain`] model describes
4//! competitions, matches, standings, brackets, and live match detail, and a set
5//! of backends ([`backends`]) translate a specific upstream API into that
6//! model. Callers select a backend at runtime through the [`Provider`] enum
7//! (see [`provider`]), so the TUI never depends on any single data source.
8//!
9//! Backends currently implemented:
10//! - **ESPN** (default): free, no API key, live data.
11//! - **API-Football** (`api-sports.io`): richer stats; requires an API key.
12//! - **football-data.org**: simple; requires an API key; limited live detail.
13
14pub mod backends;
15pub mod domain;
16pub mod error;
17pub mod provider;
18pub mod transport;
19
20pub use error::{DataError, Result};
21pub use provider::{Provider, ProviderConfig, ProviderKind, ScoreProvider};
22pub use transport::Http;