2 releases

Uses old Rust 2015

0.1.1 Aug 27, 2015
0.1.0 Aug 26, 2015

#13 in #orientation

30 downloads per month

MIT license

14KB
297 lines

angular Build Status Coverage Status

Angular types and common helper methods to work with them while using the Rust type system in our favor.

Features

  • Tested and documented
  • Safe while don't sacrificing performance and conversion related errors

Usage

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 angular;

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);

Documentation

For an exhaustive documentation head over to the API docs.

License

This software is licensed under the terms of the MIT license. Please see the LICENSE for full details.

Dependencies

~240KB