#utility #file-utility #execution #library #reader #random #read

best_skn_utils

一个简单的Rust工具库

6个稳定版本

新版本 1.2.3 2024年8月17日
1.2.0 2024年7月13日
1.1.0 2024年6月19日
1.0.0 2024年6月9日

#96配置 中排名

Download history 152/week @ 2024-06-08 106/week @ 2024-06-15 15/week @ 2024-06-22 1/week @ 2024-06-29 126/week @ 2024-07-13 3/week @ 2024-07-20 19/week @ 2024-07-27 1/week @ 2024-08-03

149 每月下载量

MIT 许可证

17KB
51

SKN Rust Utility Library

rust

Rust

Crates IO MIT License

 

RustDocs

阅读Rustdoc以了解主要模块

 

简介

这是一个简单的Rust库,用于一些基本工具函数

我制作了这个库,以便我可以在所有的Rust项目中使用它,而不必一遍又一遍地编写相同的代码

此库的主要模块是 envexecutionstdiorandomargs

 

详细信息

env 模块

  • 它有1个函数,用于构建外部配置文件功能,以获取程序外部数据
  • init_config 函数接收泛型
  • 文件名是 rustenv.toml,您可以在调用该函数后从中获取数据
  • 配置文件 rustenv.toml 必须放在 Cargo.toml 文件所在的根目录中
  • 要正确读取文件中的值,您需要 serde crate
  • 请参阅 Usage 部分,以获取如何使用它的示例

execution 模块

  • 它有2个函数,可以帮助在终端中执行命令
  • execute_command 函数可以在终端中运行任何命令
    • 它接受命令名称作为第一个参数
    • 它接受字符串切片(&str)数组的引用作为命令参数
  • gnome_execute_command 函数可以在新的Gnome终端中打开并执行命令
    • 它只接受一个参数,即字符串切片(&str)
    • 如果需要执行多个命令,则必须使用 ; 将命令分开
  • 请参阅 Usage 部分,以获取如何使用它的示例

stdio 模块

  • 它有1个函数,用于读取用户输入并返回它
  • read_line 函数在成功读取输入时返回 String,否则返回 Error
  • 请参阅 Usage 部分,以获取如何使用它的示例

random 模块

  • 它有1个函数,可以从给定的范围内生成随机数
  • gen_random_number 函数接受两个参数来设置范围。一个是 low,另一个是 high
  • 这两个参数可以是 IntegerFloat
  • 参数 lowhigh 必须是同一类型,即您不能设置从 1 到 10.1 的范围
  • 第二个参数 high 是包含的,即从 1 到 10 的范围意味着包括从 1 到 10
  • 请参阅 Usage 部分,以获取如何使用它的示例

args 模块

  • 它有一个函数,提供通过命令行界面传递的参数集合
  • get_args 函数返回一个作为字符串向量的集合
  • 请参阅 Usage 部分,以获取如何使用它的示例

 

用例

  • Rust

 

需求

  • 💀 最小 Rust 版本:1.80.0
  • 💀 依赖包

 

用法

要安装包,请在控制台中输入以下内容

cargo add best_skn_utils

在您的 Rust 代码中,像这样导入包

use best_skn_utils::{env, execution, stdio, random, args};

使用模块如下(只是一个示例)

(1) 对于 env 模块,您可以像这样使用

(a) 假设 rustenv.toml 文件包含以下数据
[author]
name = "SKN"
email = "[email protected]"
(b) 然后模块的使用可以像这样
use best_skn_utils::env::init_config;
use serde::Deserialize;

#[derive(Debug, Deserialize)]
struct Author {
  name: String,
  email: String,
}

impl Author {
  fn new() -> Self {
    Self {
      name: String::new(),
      email: String::new(),
    }
  }
}

#[derive(Debug, Deserialize)]
struct ConfigData {
  author: Author,
}

impl ConfigData {
  fn new() -> Self {
    let config = init_config::<Self>();

    match config {
      | Ok(value) => value,
      | Err(e) => {
        println!("Error: {}", e);
        Self {
          author: Author::new(),
        }
      }
    }
  }
}

let config_data: ConfigData = ConfigData::new();

println!("Name: {}, Email: {}", config_data.author.name, config_data.author.email);

(2) 对于 execution 模块,您可以像这样使用

use best_skn_utils::execution::{execute_command, gnome_execute_command};

execute_command("cargo", &["doc", "--open"]);

gnome_execute_command("printf 'Hello SKN! \n'; printf 'Build was successful! ✅ \n'; read -n 1 KEY");

(3) 对于 stdio 模块,您可以像这样使用

use best_skn_utils::stdio::read_line;
use std::io::Error;

let input: Result<String, Error> = read_line("Write your name:");

match input {
  | Ok(value) => println!("Your name: {}", value),
  | Err(e) => println!("Error: {}", e),
}

(4) 对于 random 模块,您可以像这样使用

use best_skn_utils::random::gen_random_number;

let num1: i32 = gen_random_number(1, 10);
let num2: f64 = gen_random_number(1.5, 7.5);

(5) 对于 args 模块,您可以像这样使用

use best_skn_utils::args::get_args;

let args: Vec<String> = get_args();

println!("{:?}", args);

 

献给我的

  • 👩‍⚕️Tanjila Hasan Trina:我一生中丢失的爱人。自然的道路将我们分开,把我们放在了彼此遥远的地方。但无论我们现在多么分离,我的每一刻都只属于你。我们可能在这个 lifetime 中不会见面,但我在来世会找到你。我只想说: 世界は残酷だ それでも君を愛すよ
  • 💯My Parents:我一生中最大的财富。

 

许可证

版权所有 (C) 2024 SKN Shukhan

根据 MIT 许可证授权

依赖关系

~3–12MB
~119K SLoC