#![doc(
html_logo_url = "https://raw.githubusercontent.com/paholg/dimensioned/master/favicon.png",
html_favicon_url = "https://raw.githubusercontent.com/paholg/dimensioned/master/favicon.png"
)]
#![warn(missing_docs)]
#![deny(meta_variable_misuse)]
#![cfg_attr(not(feature = "std"), no_std)]
#![cfg_attr(feature = "oibit", feature(auto_traits))]
#![cfg_attr(feature = "oibit", feature(negative_impls))]
#![cfg_attr(feature = "spec", feature(specialization))]
#![cfg_attr(feature = "spec", allow(incomplete_features))]
#![cfg_attr(not(feature = "std"), feature(core_intrinsics))]
#![allow(
clippy::float_cmp,
clippy::useless_attribute,
clippy::doc_markdown,
// Don't think we'll ever be able to remove this.
clippy::type_complexity,
// Not great. See issue #52.
clippy::transmute_ptr_to_ptr,
// These are output from the build macros; if we could get output integers to include
// underscores, we could remove it.
clippy::unreadable_literal,
// This is fine; we have constants defined as f32 and f64, so excessive precition for f32 is
// good.
clippy::excessive_precision,
)]
#[cfg(feature = "auto-args")]
extern crate auto_args;
#[cfg(feature = "clapme")]
extern crate clapme;
#[cfg(feature = "std")]
extern crate core;
extern crate num_traits;
pub extern crate typenum;
#[macro_export]
macro_rules! tarr {
() => ( $crate::typenum::ATerm );
($n:ty) => ( $crate::typenum::TArr<$n, $crate::typenum::ATerm> );
($n:ty,) => ( $crate::typenum::TArr<$n, $crate::typenum::ATerm> );
($n:ty, $($tail:ty),+) => ( $crate::typenum::TArr<$n, tarr![$($tail),+]> );
($n:ty, $($tail:ty),+,) => ( $crate::typenum::TArr<$n, tarr![$($tail),+]> );
}
#[allow(unused_imports)]
#[macro_use]
pub extern crate generic_array;
#[cfg(feature = "approx")]
pub extern crate approx;
#[cfg(feature = "serde")]
pub extern crate serde;
#[cfg(feature = "serde_test")]
extern crate serde_test;
#[cfg(feature = "rand")]
pub extern crate rand;
#[macro_use]
mod make_units;
mod fmt;
include!(concat!(env!("OUT_DIR"), "/unit_systems.rs"));
pub mod array;
pub mod conversion;
pub mod dimensions;
pub mod f32prefixes;
pub mod f64prefixes;
pub mod traits;
pub use crate::traits::*;
pub use crate::unit_systems::{cgs, fps, mks, si, ucum};
#[doc(hidden)]
pub mod dimcore {
pub use core::{default, f32, f64, fmt, iter, marker, mem, ops};
}