4 个版本
0.1.3 | 2024年1月10日 |
---|---|
0.1.2 | 2024年1月10日 |
0.1.1 | 2024年1月8日 |
0.1.0 | 2024年1月8日 |
489 在 Rust 模式 中排名
每月下载 101 次
在 2 个 crate 中使用 (通过 logfather)
15KB
80 行
简化奇奇
移除 Rust 中的烦人模板代码,并简化 String
和 HashMap
的创建。
功能
s!()
可以用于- 创建一个新的
String
- 将实现
Display
特质的任何值转换为字符串 - 连接实现
Display
特质的值 - 使用
.
前缀在值之间插入空格进行连接 (例如s!(.a, b, c)
)
- 创建一个新的
cnct!()
是s!()
的包装,以优先使用map()
创建具有初始值的 HashMap 或从 Vec/元组的数组中创建map!(k1 v1, k1 v2)
|map!(k1: v1, k2:v2)
|map!(k1 => v1, k2 => v2)
|map!(k1 -> v1, k2 -> v2)
Path
变量,如果用作键,则限制为=>
、:
或[value]
分隔符- 使用
map!()
创建一个新的HashMap
- 可以扩展
HashMap
入门指南
要开始使用 Simplicio,请在您的 Cargo.toml
文件中添加以下内容:
[dependencies]
simplicio = "0.1.3"
- 最低支持的 Rust 版本:
1.56.1
用法
字符串创建和连接
use simplicio::{s, cnct};
// Creating an enum for example purposes
enum Enum { Value } //Create the enum, Enum
impl std::fmt::Display for Enum { // Implement the Display trait
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self { Enum::Value => write!(f, "value"), }
}
}
fn main() {
assert_eq!(String::new(), s!()); // Make a new string
assert_eq!(String::from("This is a String"), s!("This is a String")); // Stop using .to_string() or String::from()
assert_eq!(true.to_string(), s!(true)); // Converts bools
assert_eq!(123840.to_string(), s!(123840)); // Convert numbers fast boiiii
assert_eq!(Enum::Value.to_string(), s!(Enum::Value)); // As long as it implements the ToString or Display traits, it will work
let (a, b, c, d) = ("This", "is", "a", "String");
assert_eq!(String::from("This is a String"), cnct!(.a, b, c, d)); // '.' prefix to automate spacing
assert_eq!(s!(a, b, c, d), cnct!(a, b, c ,d)); // `cnct!()` is just a wrapper around `s!()`
}
创建 HashMap
use simplicio::*;
fn main() {
let mut tester = std::collections::HashMap::new();
tester.insert("k1", "v1");
tester.insert("k2", "v2");
assert_eq!(map!("k1""v1", "k2" "v2"), tester); // ' ' delimiter
assert_eq!(map!("k1":"v1", "k2" : "v2"), tester); // ':' delimiter
assert_eq!(map!("k1"=>"v1", "k2" => "v2"), tester); // '=>' delimiter
assert_eq!(map!("k1"->"v1", "k2" -> "v2"), tester); // '->' delimiter
assert_eq!(map!("k1"["v1"], "k2" ["v2"]), tester); // Key[Value]
assert_eq!(map!([("k1", "v1"), ("k2", "v2")]), tester); // Similar to Hashmap::from(/*...*/)
let vecmap = Vec::from([("k1", "v1"), ("k2", "v2")]);
assert_eq!(map!(vecmap), tester); // Can convert a Vec<(_,_)>
let arrmap = [("k1", "v1"), ("k2", "v2")];
assert_eq!(map!(arrmap), tester); // Can convert an array [(_,_)]
}
许可证
本项目采用 MIT 许可证 - 详细内容请参阅 LICENSE 文件。
贡献
._. 为什么你会这样做?