1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//! rs-query: TanStack Query-inspired data fetching for GPUI
//!
//! # Features
//!
//! - **Declarative queries** - Define once, auto-cache
//! - **spawn_query/spawn_mutation** - One-liner async execution
//! - **Stale-while-revalidate** - Show cached data while fetching
//! - **Automatic retries** - Exponential backoff for transient failures
//! - **Cache invalidation** - Hierarchical key patterns
//!
//! # Example
//!
//! ```rust,ignore
//! use rs_query::{QueryClient, QueryKey, QueryState, Query, spawn_query};
//!
//! // Define a query
//! let query = Query::new(QueryKey::new("users"), || async {
//! fetch_users().await
//! });
//!
//! // Execute with automatic state management
//! spawn_query(cx, &client, &query, |this, state, cx| {
//! match state {
//! QueryState::Success(users) => this.users = users,
//! QueryState::Error { error, .. } => this.error = Some(error),
//! _ => {}
//! }
//! cx.notify();
//! });
//! ```
pub use QueryClient;
pub use QueryError;
pub use ;
pub use QueryKey;
pub use ;
pub use ;
pub use Query;
pub use QueryState;