polys

Crates.iopolys
lib.rspolys
version0.4.2
sourcesrc
created_at2020-07-15 04:11:43.196314
updated_at2020-07-22 11:37:40.473297
descriptionA package for polygon geometry
homepage
repositoryhttps://github.com/Breadinator/polys
max_upload_size
id265320
size19,130
Valérie (Breadinator)

documentation

README

polys

Crates.io Docs

polys is a Rust crate implementing basic polygons as structs, all implementing a trait which gives the basic functions associated with polygons.

Usage

Add this to your Cargo.toml:

[dependencies]
polys = "0.4.2"

Usage

The following is the main.rs file of my test program. It shows the area and perimeter of a rectangle, a triangle, and a circle.

use polys::{Polygon, Rect, Tri, Circle, Reg};

fn main() {
    let poly = Rect::new(12.0, 6.0).expect("Could not make Rect");
    println!("{:?}\n    area: {}, peri: {}\n", &poly, &poly.area().expect("Is none"), &poly.peri().expect("Is none"));

    let poly = Tri::new(24.0, 30.0, 18.0).expect("Could not make Tri");
    println!("{:?}\n    area: {}, peri: {}\n", &poly, &poly.area().expect("Is none"), &poly.peri().expect("Is none"));

    let poly = Circle::new(5.0).expect("Could not make Circle");
    println!("{:?}\n    area: {}, peri: {}\n", &poly, &poly.area().expect("Is none"), &poly.peri().expect("Is none"));

    let poly = Reg::new(3.0, 5.0).expect("Could not make Reg");
    println!("{:?}\n    area: {}, peri: {}\n", &poly, &poly.area().expect("Is none"), &poly.peri().expect("Is none"));
}

The output of this program returns the following:

Rect { width: 12.0, height: 6.0 }
    area: 72, peri: 36

Tri { side1: 24.0, side2: 30.0, side3: 18.0 }
    area: 216, peri: 72

Circle { radius: 5.0 }
    area: 78.53981633974483, peri: 31.41592653589793

Reg { length: 3.0, sides: 5.0 }
    area: 15.484296605300704, peri: 15

License

polys is distributed under the MIT license. See LICENSE.

Commit count: 21

cargo fmt