gilt 0.9.1

A fast, rich terminal formatting library — Rust port of Python's rich
Documentation
# Module Dependency Analysis

## Core Dependencies (Most Imported)

```
console::Renderable    <-- Used by 45+ modules (core trait)
style::Style           <-- Used by 50+ modules (everywhere)
text::Text             <-- Used by 40+ modules (core type)
segment::Segment       <-- Used by 35+ modules (rendering)
console::Console       <-- Used by 30+ modules (rendering)
measure::Measurement   <-- Used by 25+ modules (layout)
```

## Module Groupings by Dependency

### Group 1: Core Types (No internal deps, foundation)
- `style` - Zero dependencies, used everywhere
- `color` - Only uses std
- `segment` - Uses style, color
- `measure` - Uses segment
- `cells` - Zero dependencies
- `box_chars` - Zero dependencies
- `control` - Uses segment

### Group 2: Text Processing (Depends on Group 1)
- `text` - Uses style, segment, measure
- `markup` - Uses text, style
- `wrap` - Uses text
- `ansi` - Uses color, style, text

### Group 3: Console System (Depends on Group 1-2)
- `console` - Uses text, style, segment, measure, markup
- `terminal_theme` - Uses color, style
- `theme` - Uses style, terminal_theme
- `color_env` - Uses color, terminal_theme

### Group 4: Widgets (Depend on Group 1-3)
- `panel` - Uses console, style, text, segment
- `table` - Uses console, style, text, segment
- `tree` - Uses console, style, text
- `columns` - Uses console, table, text
- `layout` - Uses console, text
- `rule` - Uses console, style, text
- `accordion` - Uses console, style, text
- `badge` - Uses console, style, segment

### Group 5: Progress System (Depend on Group 1-4)
- `progress` - Uses console, live, table, text, style
- `progress_bar` - Uses style
- `live` - Uses console, text
- `live_render` - Uses console, text
- `status` - Uses console, spinner
- `spinner` - Uses style
- `spinners` - Uses spinner

### Group 6: Interactive (Depend on Group 1-5)
- `prompt` - Uses console, style, text
- `pager` - Uses console, text

### Group 7: Advanced Features (Optional)
- `syntax` - Uses console, style, text
- `markdown` - Uses console, style, text
- `gradient` - Uses color, style
- `figlet` - Uses text
- `canvas` - Uses console
- `sparkline` - Uses console, style
- `diff` - Uses console, style, text
- `csv_table` - Uses console, table

### Group 8: Async/HTTP (Feature-gated)
- `async` - Uses progress, live, text
- `http` - Uses progress, async

### Group 9: Error Handling (Feature-gated)
- `errors` - Core errors
- `eyre_handler` - Uses console, errors
- `miette_handler` - Uses console, errors
- `logging_handler` - Uses console
- `tracing_layer` - Uses console

### Group 10: Utilities (Mixed dependencies)
- `highlighter` - Uses text, style
- `emoji` - Uses text
- `emoji_replace` - Uses emoji_codes
- `filesize` - Zero dependencies
- `json` - Uses console (feature)
- `inspect` - Uses console
- `pretty` - Uses console
- `gradient` - Uses color

## Circular Dependencies to Watch

None detected! The codebase has clean layering:
```
Group 1 (Foundation)
Group 2 (Text)
Group 3 (Console)
Group 4-5 (Widgets/Progress)
Group 6+ (Interactive/Advanced)
```

## Restructuring Safety

Because dependencies flow in one direction, we can safely:
1. ✅ Move files between groups at the same level
2. ✅ Split files within their group
3. ✅ Reorganize feature-gated modules
4. ⚠️ Be careful when splitting Group 1 (foundation) - many dependencies

## Recommended Module Organization

Based on dependencies, the optimal structure is:

```
src/
├── core/           # Group 1: style, color, segment, measure, cells
│   └── foundation/
├── text/           # Group 2: text, markup, wrap, ansi
├── console/        # Group 3: console, terminal_theme, theme
├── widgets/        # Group 4: panel, table, tree, etc.
├── progress/       # Group 5: progress, live, status
├── interactive/    # Group 6: prompt, pager
├── fancy/          # Group 7: syntax, markdown, gradient, etc.
├── async_rt/       # Group 8: async, http
├── error/          # Group 9: errors, handlers
└── utils/          # Group 10: utilities
```