target_match/lib.rs
1#![doc = include_str!("../README.md")]
2//!
3//! # Modules
4//!
5//! - [`optics`] — plate scale and field-of-view geometry from focal length,
6//! pixel size (x/y), binning (x/y), and sensor dimensions — or a directly
7//! supplied pixel scale / field of view — plus the search-radius policies.
8//! - [`matcher`] — the `SkyObject` input trait, match constraints (radius,
9//! rectangular field of view, nearest-N), and deterministic ranking.
10//! - [`guide`] — a task-oriented walkthrough, from implementing `SkyObject`
11//! through repeated queries with `Matcher`.
12
13pub mod error;
14pub mod matcher;
15pub mod optics;
16
17/// A task-oriented walkthrough of `target-match`, from implementing
18/// [`SkyObject`] through repeated queries with [`Matcher`]. Source:
19/// [`docs/guide.md`](https://github.com/nightwatch-astro/target-match/blob/main/docs/guide.md).
20#[doc = include_str!("../docs/guide.md")]
21pub mod guide {}
22
23/// The astronomy-math crate whose types appear in this crate's public API,
24/// re-exported so consumers can use the exact version target-match was built
25/// against.
26pub use skymath;
27
28// `#[doc(inline)]` puts each item's canonical rustdoc page at the crate root
29// (`target_match::Foo`), matching how these re-exports are used. Without it,
30// because the source modules are public, rustdoc keeps the page under the
31// submodule path (`target_match/matcher/…`) and crate-root links 404.
32#[doc(inline)]
33pub use error::{Error, Result};
34#[doc(inline)]
35pub use matcher::{
36 is_framed, rank, Constraint, Match, Matcher, Membership, Offset, Query, SkyObject,
37};
38#[doc(inline)]
39pub use optics::{
40 Field, Optics, RadiusPolicy, ARCSEC_PER_DEGREE, ARCSEC_PER_RADIAN, DEFAULT_FALLBACK_RADIUS,
41};