avila_linalg/lib.rs
1//! # Avila Linear Algebra
2//!
3//! Biblioteca de álgebra linear genuína em Rust para o ecossistema Avila.
4//!
5//! ## Filosofia
6//!
7//! - **100% Avila** - Sem dependências pesadas
8//! - **Eficiente** - Performance sem sacrificar clareza
9//! - **Educacional** - Código claro e bem documentado
10//! - **Flexível** - Suporte para tipos genéricos
11//!
12//! ## Uso Rápido
13//!
14//! ```rust
15//! use avila_linalg::{Vector3, Matrix3x3};
16//!
17//! let v1 = Vector3::new(1.0, 2.0, 3.0);
18//! let v2 = Vector3::new(4.0, 5.0, 6.0);
19//!
20//! let dot = v1.dot(&v2);
21//! let cross = v1.cross(&v2);
22//! ```
23
24#![deny(missing_docs)]
25#![warn(clippy::all)]
26
27pub mod matrix;
28pub mod ops;
29pub mod transform;
30pub mod vector;
31
32// Re-exports principais
33pub use matrix::{Matrix2x2, Matrix3x3, Matrix4x4, MatrixMxN};
34pub use vector::{Vector2, Vector3, Vector4, VectorN};
35
36/// Módulo prelude para imports convenientes
37pub mod prelude {
38 pub use crate::matrix::*;
39 pub use crate::ops::*;
40 pub use crate::transform::*;
41 pub use crate::vector::*;
42}
43
44#[cfg(test)]
45mod tests {
46 use super::*;
47
48 #[test]
49 fn it_works() {
50 let v = Vector3::new(1.0, 2.0, 3.0);
51 assert_eq!(v.x(), 1.0);
52 assert_eq!(v.y(), 2.0);
53 assert_eq!(v.z(), 3.0);
54 }
55}