| Crates.io | nz-ei |
| lib.rs | nz-ei |
| version | 0.1.0 |
| created_at | 2025-10-12 07:12:24.406176+00 |
| updated_at | 2025-10-12 07:12:24.406176+00 |
| description | A simple Rust library for easy input handling from stdin |
| homepage | |
| repository | https://github.com/ArtNazarov/nz-ei |
| max_upload_size | |
| id | 1879016 |
| size | 27,613 |
Простая библиотека Rust для легкой обработки ввода из стандартного потока ввода
get_numeric_value()get_string()Добавить в Cargo.toml:
[dependencies]
nz_ei = { git = "https://github.com/ArtNazarov/nz-ei }
use nz_ei::Input;
// Ввод числа с приглашением
let age: u32 = Input::get_numeric_with_prompt("Введите ваш возраст: ");
// Ввод числа без приглашения
let number: i32 = Input::get_numeric_value();
// Ввод строки с приглашением
let name = Input::get_string_with_prompt("Введите ваше имя: ");
// Ввод строки без приглашения
let text = Input::get_string();
// Ввод нескольких чисел, разделенных пробелами
let numbers: Vec<i32> = Input::get_vector_with_prompt("Введите числа через пробел: ");
// Без приглашения
let values: Vec<f64> = Input::get_vector();
// Ввод ровно 5 чисел (игнорирует лишние)
let five_numbers: Vec<i32> = Input::get_vector_n_with_prompt("Введите 5 чисел: ", 5);
// Без приглашения
let three_values: Vec<f64> = Input::get_vector_n(3);
// Сначала запрашивает количество элементов, затем сами элементы
let data: Vec<i32> = Input::get_vector_with_count();
// Ввод матрицы до пустой строки
let matrix: Vec<Vec<i32>> = Input::get_matrix_with_prompt("Введите матрицу:");
// Без приглашения
let matrix: Vec<Vec<f64>> = Input::get_matrix();
// Ввод матрицы 3x4 (3 строки, 4 столбца)
let matrix: Vec<Vec<i32>> = Input::get_matrix_by_dimensions(3, 4);
// С приглашением
let matrix: Vec<Vec<f64>> = Input::get_matrix_by_dimensions_with_prompt(
"Введите матрицу 2x3:", 2, 3
);
// Сначала вводятся размеры, затем сама матрица
let matrix: Vec<Vec<i32>> = Input::get_matrix_with_sizes();
// С приглашением
let matrix: Vec<Vec<f64>> = Input::get_matrix_with_sizes_with_prompt(
"Введите размеры и матрицу:"
);
Библиотека также предоставляет упрощенные функции для прямого вызова:
use nz_ei::{
get_numeric_value, get_string,
get_vector, get_vector_n, get_vector_with_count,
get_matrix, get_matrix_by_dimensions, get_matrix_with_sizes
};
let x: i32 = get_numeric_value();
let name = get_string();
let numbers: Vec<f64> = get_vector();
let limited: Vec<i32> = get_vector_n(3);
let counted: Vec<u32> = get_vector_with_count();
let matrix: Vec<Vec<i32>> = get_matrix();
let sized_matrix: Vec<Vec<f64>> = get_matrix_by_dimensions(2, 2);
let auto_matrix: Vec<Vec<i32>> = get_matrix_with_sizes();
use nz_ei::Input;
fn main() {
println!("=== Демонстрация библиотеки Easy Input ===");
// 1. Ввод одиночных значений
let number: i32 = Input::get_numeric_with_prompt("Введите число: ");
let name = Input::get_string_with_prompt("Введите имя: ");
// 2. Ввод векторов
let vector: Vec<i32> = Input::get_vector_with_prompt("Введите числа через пробел: ");
let limited_vector: Vec<i32> = Input::get_vector_n_with_prompt("Введите 3 числа: ", 3);
// 3. Ввод матриц
println!("\nВвод матрицы произвольного размера:");
let matrix1: Vec<Vec<i32>> = Input::get_matrix();
println!("\nВвод матрицы 2x3:");
let matrix2: Vec<Vec<i32>> = Input::get_matrix_by_dimensions(2, 3);
println!("\nВвод матрицы с указанием размеров:");
let matrix3: Vec<Vec<f64>> = Input::get_matrix_with_sizes();
// 4. Использование упрощенных функций
let simple_matrix: Vec<Vec<i32>> = nz_ei::get_matrix_by_dimensions(2, 2);
println!("Результаты:");
println!("Число: {}, Имя: {}", number, name);
println!("Вектор: {:?}", vector);
println!("Ограниченный вектор: {:?}", limited_vector);
println!("Матрица 1: {:?}", matrix1);
println!("Матрица 2: {:?}", matrix2);
println!("Матрица 3: {:?}", matrix3);
println!("Простая матрица: {:?}", simple_matrix);
}
get_matrix()1 2 3
4 5 6
7 8 9
[пустая строка]
get_matrix_by_dimensions(2, 3)Строка 1: 1 2 3
Строка 2: 4 5 6
get_matrix_with_sizes()2 3 # размеры: 2 строки, 3 столбца
1 2 3 # первая строка
4 5 6 # вторая строка
Библиотека обрабатывает следующие ошибки:
get_vector_n()При возникновении ошибок библиотека вызывает панику с понятным описанием проблемы.
Библиотека поддерживает все типы, реализующие трейт FromStr:
i8, i16, i32, i64, i128, isizeu8, u16, u32, u64, u128, usizef32, f64FromStrMIT