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}