//! Shared sealed traits for conic markers and validated shape types.
use fmt;
use ;
/// Sealed trait implemented by all three kind markers.
/// Sealed trait implemented by non-parabolic kind markers (`Elliptic`, `Hyperbolic`).
///
/// `SemiMajorAxisParam` is only valid for these kinds; this bound enforces that
/// at compile time.
/// Sealed trait for validated conic shape parameterisations.
///
/// Only `PeriapsisParam`, `SemiMajorAxisParam`, `TypedPeriapsisParam`, and
/// `TypedSemiMajorAxisParam` implement this trait. Because all shapes are
/// validated at construction time, `kind()` is infallible.