gemath 0.1.0

Type-safe game math with type-level units/spaces, typed angles, and explicit fallible ops (plus optional geometry/collision).
Documentation
//! Shared marker (ZST) types used for type-level units and coordinate spaces.
//!
//! These are intentionally defined **once** so that all modules agree on the same
//! `Meters/Pixels/World/Local/Screen` types. Re-export them from modules (e.g. `vec2`)
//! if you want `gemath::vec2::Meters`-style paths to keep working.

/// Marker type for "meters" unit.
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Copy, Clone, Debug, PartialEq, Eq, Default)]
pub struct Meters;

/// Marker type for "pixels" unit.
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Copy, Clone, Debug, PartialEq, Eq, Default)]
pub struct Pixels;

/// Marker type for world-space coordinates.
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Copy, Clone, Debug, PartialEq, Eq, Default)]
pub struct World;

/// Marker type for local-space coordinates.
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Copy, Clone, Debug, PartialEq, Eq, Default)]
pub struct Local;

/// Marker type for screen-space coordinates.
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Copy, Clone, Debug, PartialEq, Eq, Default)]
pub struct Screen;