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>;