/// Discriminant for the three states an `use_async` future can be in.
///
/// Re-exported as `UseAsyncState` via [`super`]. Kept as a separate
/// enum (rather than a `Result`-shaped type) so the `match` arms
/// produced by users can name the `Loading` case separately and
/// reach for `LoadingHint` (the previous "in flight" payload) when
/// available.
///
/// The default initial state is `Loading(LoadingHint::DEFAULT)`,
/// because until the first `.await` resolves there is no `T` to
/// report. Users that need a distinct pre-fetch state can supply
/// `LoadingHint` via `UseAsyncHandle::loading_hint()`.