static_math/lib.rs
1//-------------------------------------------------------------------------
2// @file lib.rs
3//
4// @date 06/18/20 11:26:55
5// @author Martin Noblia
6// @email mnoblia@disroot.org
7//
8// @brief
9//
10// @detail
11//
12// Licence MIT:
13// Copyright <2021> <Martin Noblia>
14//
15// Permission is hereby granted, free of charge, to any person obtaining a copy
16// of this software and associated documentation files (the "Software"), to deal
17// in the Software without restriction, including without limitation the rights
18// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
19// copies of the Software, and to permit persons to whom the Software is
20// furnished to do so, subject to the following conditions:
21//
22// The above copyright notice and this permission notice shall be included in
23// all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED
24// "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
25// LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
26// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
27// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
28// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30//--------------------------------------------------------------------------
31// TODO(elsuizo:2021-05-16): fill this section
32//!
33//! static-math
34//!
35//! Safe and fast mathematical operations with static arrays in Rust programming language
36//!
37#![cfg_attr(all(feature = "no-std"), no_std)]
38#![deny(unsafe_code)]
39pub mod traits;
40pub mod matrix2x2;
41pub mod matrix3x3;
42pub mod matrix4x4;
43pub mod matrix5x5;
44pub mod matrix6x6;
45pub mod vector2;
46pub mod vector3;
47pub mod vector4;
48pub mod vector5;
49pub mod vector6;
50pub mod utils;
51pub mod errors;
52pub mod slices_methods;
53pub mod quaternion;
54pub mod dual_quaternion;
55pub mod transformations;
56
57//-------------------------------------------------------------------------
58// export types
59//-------------------------------------------------------------------------
60pub use matrix2x2::M22;
61pub use matrix3x3::M33;
62pub use matrix4x4::M44;
63pub use matrix5x5::M55;
64pub use matrix6x6::M66;
65pub use vector2::V2;
66pub use vector3::V3;
67pub use vector4::V4;
68pub use vector5::V5;
69pub use vector6::V6;
70pub use quaternion::Quaternion;
71pub use dual_quaternion::DualQuaternion;