Skip to main content

ravenrs_sheet/
lib.rs

1//! Headless spreadsheet engine for RavenRS.
2//!
3//! The layers, from the bottom up:
4//!
5//! - [`base`]: cell addresses, values, errors, date serials and input parsing.
6//! - [`numfmt`]: number format codes, General display and `TEXT()`.
7//! - [`formula`]: the formula language: lexer, parser, printer and reference adjustment.
8//! - [`functions`]: the worksheet function library.
9//! - [`math`]: equations laid out from LaTeX, and their OMML form for XLSX.
10//! - [`model`]: workbooks, sheets, copy-on-write cells, styles, tables and charts.
11//! - [`calc`]: dependency graph, recalculation and dynamic arrays.
12//! - [`xlsx`]: XLSX and CSV import and export.
13//! - [`chart`]: chart data and layout into toolkit-free primitives, and sparklines.
14//! - [`pdf`]: a small PDF writer for printing sheets.
15//! - [`engine`]: sessions: every action is a command with an id and JSON parameters, with undo,
16//!   clipboard, fill, sort and filter.
17//!
18//! Nothing here draws or depends on a window, so it also runs on servers and in WebAssembly.
19//! The engine comes from GridCraft (MIT OR Apache-2.0); see `NOTICE`.
20#![allow(missing_docs)]
21// The engine's docs point at private helpers to explain how things fit together.
22#![allow(rustdoc::private_intra_doc_links)]
23#![deny(clippy::unwrap_used, clippy::expect_used, clippy::panic, clippy::unimplemented, clippy::todo, clippy::unreachable)]
24
25pub mod base;
26pub mod calc;
27pub mod chart;
28pub mod engine;
29pub mod formula;
30pub mod functions;
31pub mod math;
32pub mod model;
33pub mod numfmt;
34pub mod pdf;
35pub mod xlsx;