binary_search_tree_visualizer/lib.rs
1//! # Binary Search Tree Visualizer
2//!
3//! This crate provides visualization tools for binary search trees, including both ASCII art and SVG generation.
4//! It is great for educational purposes and debugging binary search tree implementations.
5//!
6//! ## Features
7//! - ASCII art visualization of binary search trees
8//! - SVG generation for high-quality tree visualization
9//! - Simple and intuitive API
10//! - Customizable visualization parameters
11//! - Support for any type that implements `Ord` and `Display` traits
12
13/// The binary search tree module.
14pub mod tree;
15/// The visualizer module, including ASCII and SVG visualizers.
16pub mod visualizer;
17
18pub use tree::BinarySearchTree;
19pub use visualizer::{AsciiVisualizer, SvgVisualizer};
20
21/// Error types for the binary search tree visualizer.
22#[derive(Debug, thiserror::Error)]
23pub enum VisualizerError {
24 /// The tree structure is invalid.
25 #[error("Invalid tree structure: {0}")]
26 InvalidTree(String),
27 /// An IO error occurred.
28 #[error("IO error: {0}")]
29 IoError(#[from] std::io::Error),
30}
31
32/// Result type for the binary search tree visualizer.
33pub type Result<T> = std::result::Result<T, VisualizerError>;