blackjack/lib.rs
1#![warn(missing_docs)]
2//! BlackJack strives to be a full featured crate for general data processing.
3//!
4//! _Long term_ goal is to create a lightweight [Pandas](https://pandas.pydata.org/) equivalent
5//! by and for the Rust community, but with slight differences in focus...
6//!
7//! The project strives for a few key principles. When any implementation decisions are to be made,
8//! they are made with these principles in mind, and in this order:
9//! 1. **Memory efficiency**
10//! - Minimize memory use at every opportunity.
11//! 2. **Usability**
12//! - Strive for ergonomics; often done by modeling the `Pandas` API where possible.
13//! 3. **Speedy**
14//! - It comes naturally most times with Rust. :)
15//!
16//! Eventually, a Python wrapper: [Lumber-Jack](https://github.com/milesgranger/lumber-jack)
17//! associated with this crate, but that time will come.
18//!
19//! # Example use:
20//!
21//! ```
22//! use blackjack::prelude::*;
23//!
24//! // We have a dataframe, of course...
25//! let mut df = DataFrame::new();
26//!
27//! // Make some series, of different types
28//! let series_i32: Series<i32> = Series::arange(0, 5);
29//! let mut series_f64: Series<f64> = Series::from_vec(vec![1.0, 2.0, 3.0, 4.0, 5.0]);
30//!
31//! // You can set a series name!
32//! series_f64.set_name("my-series");
33//!
34//! // Or not...
35//! assert_eq!(series_i32.name(), None);
36//!
37//! // And add them to the dataframe
38//! df.add_column(series_f64).unwrap();
39//! df.add_column(series_i32).unwrap();
40//!
41//! // And then get a reference to a Series
42//! let series_f64_ref: &Series<f64> = df.get_column("my-series").unwrap();
43//!
44//! // and a lot more...
45//! ```
46
47#[macro_use]
48pub mod macros;
49
50pub mod dataframe;
51pub mod enums;
52pub mod error;
53mod funcs;
54pub mod prelude;
55pub mod row;
56pub mod series;
57pub mod traits;