Crates.io | ang |
lib.rs | ang |
version | 0.6.0 |
source | src |
created_at | 2017-03-17 08:17:33.684678 |
updated_at | 2022-02-25 21:05:32.656683 |
description | Angular types and common helper methods. |
homepage | https://github.com/burtonageo/ang |
repository | https://github.com/burtonageo/ang |
max_upload_size | |
id | 9006 |
size | 27,479 |
Ang is a fork of the Angular crate to add various improvements.
Angular types and common helper methods to work with them while using the Rust type system in our favor.
Everything evolves around the Angle<T>
type and its two variants
Degrees(v)
and Radians(v)
. This ensures proper typing and allows for safe
helper methods evolving around it.
extern crate ang;
use angular::*;
use std::f64::consts::{SQRT_2, FRAC_PI_4};
fn calc_hypotenuse(opposite: f64, alpha: Angle) -> f64 {
opposite / alpha.sin()
}
let a = calc_hypotenuse(SQRT_2, Radians(FRAC_PI_4));
let b = calc_hypotenuse(SQRT_2, Degrees(45.0));
let c = calc_hypotenuse(SQRT_2, Angle::eighth());
assert!((a - 2.0).abs() < 1.0e10);
assert!((a - b).abs() < 1.0e10);
std
Enabling the std
feature will link this crate to std
. If this feature is disabled, then
this crate will be built with #![no_std]
enabled.
This feature is enabled by default.
For an exhaustive documentation head over to the API docs.
This software is licensed under the terms of the MIT license. Please see the LICENSE for full details.