Skip to main content

Crate affn_derive

Crate affn_derive 

Source
Expand description

§affn-derive

Derive macros for the affn crate, providing #[derive(ReferenceFrame)] and #[derive(ReferenceCenter)] for convenient frame and center definitions.

§Usage

These derives are re-exported from affn, so you typically use them as:

use affn::{ReferenceFrame, ReferenceCenter};

#[derive(Debug, Copy, Clone, ReferenceFrame)]
struct MyFrame;

#[derive(Debug, Copy, Clone, ReferenceCenter)]
struct MyCenter;

§Attributes

§#[derive(ReferenceFrame)]

  • #[frame(name = "CustomName")] - Override the frame name (defaults to struct name)
  • #[frame(polar = "dec", azimuth = "ra")] - Also implement SphericalNaming with custom names
  • #[frame(distance = "altitude")] - Override distance name (defaults to “distance”)
  • #[frame(inherent)] - Generate inherent methods on Direction<F> and Position<C,F,U>. Only valid when the frame is defined in the same crate as Direction/Position.

§#[derive(ReferenceCenter)]

  • #[center(name = "CustomName")] - Override the center name (defaults to struct name)
  • #[center(params = MyParamsType)] - Specify the Params associated type (defaults to ())
  • #[center(affine = false)] - Skip implementing AffineCenter marker trait

Derive Macros§

ReferenceCenter
Derive macro for implementing ReferenceCenter.
ReferenceFrame
Derive macro for implementing ReferenceFrame.