1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//! # jkconfig
//!
//! A Ratatui-based TUI component library for JSON Schema configuration.
//!
//! JKConfig automatically generates interactive terminal forms from JSON Schema
//! definitions, making configuration management intuitive and error-free.
//!
//! ## Features
//!
//! - Beautiful TUI interface built with [Ratatui](https://github.com/ratatui/ratatui)
//! - JSON Schema driven UI generation (Draft 2020-12)
//! - Support for multiple data types: String, Integer, Number, Boolean, Enum, Array, Object, OneOf
//! - Multi-format support: TOML and JSON configuration files
//! - Keyboard shortcuts with Vim-like keybindings
//! - Real-time type validation based on schema constraints
//! - Automatic backup before saving changes
//!
//! ## Quick Start
//!
//! ```rust,no_run
//! use jkconfig::data::{AppState, ConfigDocument};
//!
//! // Load configuration with schema
//! let document = ConfigDocument::new(
//! Some("config.toml"),
//! Some("config-schema.json")
//! ).unwrap();
//! let app_state = AppState::new(document);
//!
//! // Access the configuration tree
//! let json_value = app_state.document.as_json();
//! ```
//!
//! ## Modules
//!
//! - [`data`] - Configuration data structures and schema parsing
//! - [`run`] - TUI application runner
//! - [`ui`] - UI components and editors
//! - [`web`] - Web server module (requires `web` feature)
/// Configuration data structures and schema parsing.
///
/// This module provides the core data structures for managing configuration
/// data, including schema parsing, value management, and serialization.
// UI模块暂时注释掉,使用主程序中的 MenuView
/// TUI application runner and main entry points.
/// UI components and editors for different data types.
// Web服务器模块(需要web feature)
/// Web server module for remote configuration editing.
///
/// This module is only available when the `web` feature is enabled.
pub use *;
pub use Value;