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
49
50
51
/*!
* CelestrakClient API client for querying satellite catalog data from CelestrakClient.
*
* This module provides a composable query builder and HTTP client for the
* CelestrakClient REST API. It supports GP queries (`gp.php`), supplemental GP
* queries (`sup-gp.php`), and SATCAT queries (`satcat/records.php`) with a
* fluent builder pattern that works naturally in both Rust and Python.
*
* GP queries return the same [`GPRecord`] type as the SpaceTrack module,
* enabling interoperability between both data sources.
*
* # Architecture
*
* - [`types`] - Core enums: [`CelestrakQueryType`], [`CelestrakOutputFormat`], [`SupGPSource`]
* - [`query`] - [`CelestrakQuery`] fluent builder
* - [`client`] - [`CelestrakClient`] with HTTP and caching
* - [`responses`] - Typed response struct: [`CelestrakSATCATRecord`]
* - [`filter`] - Client-side filtering engine for SpaceTrack-compatible operators
*
* # Examples
*
* ```ignore
* use brahe::celestrak::*;
*
* // Create a client
* let client = CelestrakClient::new();
*
* // Build a query for GP data for the ISS station group
* let query = CelestrakQuery::gp()
* .group("stations");
*
* // Execute query and get typed response (same GPRecord as SpaceTrack!)
* let records = client.query_gp(&query).unwrap();
* println!("First record: {:?}", records[0].object_name);
* ```
*/
// Re-export commonly used types for convenience
pub use CelestrakClient;
pub use CelestrakQuery;
pub use CelestrakSATCATRecord;
pub use ;
// Re-export GPRecord for convenience (users can import from either module)
pub use crateGPRecord;