33 lines
1.4 KiB
Rust
33 lines
1.4 KiB
Rust
|
|
//! Основной файл СУБД flusql
|
|||
|
|
//!
|
|||
|
|
//! Точка входа в приложение. Отвечает за:
|
|||
|
|
//! - Вывод приветственного сообщения с цветным оформлением
|
|||
|
|
//! - Инициализацию и запуск REPL (Read-Eval-Print Loop) интерфейса
|
|||
|
|
//! - Обработку ошибок и корректное завершение работы
|
|||
|
|
|
|||
|
|
use ansi_term::Colour;
|
|||
|
|
use flusql::run;
|
|||
|
|
|
|||
|
|
/// Точка входа в приложение flusql
|
|||
|
|
///
|
|||
|
|
/// Функция main выполняет следующие действия:
|
|||
|
|
/// 1. Выводит цветное приветственное сообщение
|
|||
|
|
/// 2. Запускает интерактивный REPL интерфейс
|
|||
|
|
/// 3. Обрабатывает ошибки и выводит их в красном цвете
|
|||
|
|
///
|
|||
|
|
/// # Обработка ошибок
|
|||
|
|
/// - Если REPL завершается с ошибкой, она выводится красным цветом
|
|||
|
|
/// - Код завершения устанавливается в 1 при ошибке
|
|||
|
|
fn main() {
|
|||
|
|
// Инициализация логгера
|
|||
|
|
env_logger::init();
|
|||
|
|
|
|||
|
|
// Запуск REPL интерфейса
|
|||
|
|
let runtime = tokio::runtime::Runtime::new().unwrap();
|
|||
|
|
|
|||
|
|
if let Err(e) = runtime.block_on(run()) {
|
|||
|
|
eprintln!("{}", Colour::Red.paint(format!("Error: {}", e)));
|
|||
|
|
std::process::exit(1);
|
|||
|
|
}
|
|||
|
|
}
|