malevich 1.24.1

Terminal plotting: a small grammar of marks, honest axes, millions of points
Documentation
//! Rendering: the subpixel surface, charset codecs, and string encoders.
//!
//! Marks draw on a [`Surface`] in subpixel coordinates (raster convention: origin
//! top-left, y grows downward); a [`Charset`] codec maps each cell's subpixel pattern
//! to one glyph; encoders turn the cell grid into a plain or ANSI string, an HTML
//! card, or an SVG card — one grid, one encoder per kind of terminal. Nothing in
//! this module touches a terminal, and nothing in it panics: drawing outside the
//! surface clips, non-finite coordinates draw nothing.

mod canvas;
mod charset;
// Visible to the crate so tests elsewhere can drive the quantizers directly.
pub(crate) mod color;
mod html;
mod limits;
mod raster;
mod surface;
mod svg;
mod width;

pub(crate) use canvas::{Anchor, Canvas, PlotRect, PointShape};
pub use charset::Charset;
pub use color::{Color, ColorMode};
#[cfg(feature = "pixel")]
pub(crate) use color::{ansi256_to_rgb, rgb_to_256};
pub(crate) use limits::{
    MAX_DEVICE_PIXELS, MAX_OUTPUT_BYTES, frame_cells, reserve as reserve_vec, reserve_string,
};
#[cfg(feature = "pixel")]
pub(crate) use limits::{area as checked_area, dimension as checked_dimension};
pub use raster::{Raster, RasterCell};
pub use surface::Surface;
#[cfg(feature = "pixel")]
pub(crate) use svg::{cell_rect, write_pixel_panel};
pub(crate) use width::{display_width, display_width_ansi, fit_width_with};