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日

489Rust 模式 中排名

Download history 27/week @ 2024-03-17 90/week @ 2024-03-24 35/week @ 2024-03-31 19/week @ 2024-04-07 16/week @ 2024-04-14 38/week @ 2024-04-21 13/week @ 2024-04-28 11/week @ 2024-05-05 9/week @ 2024-05-12 19/week @ 2024-05-19 24/week @ 2024-05-26 23/week @ 2024-06-02 16/week @ 2024-06-09 40/week @ 2024-06-16 33/week @ 2024-06-23 10/week @ 2024-06-30

每月下载 101
2 个 crate 中使用 (通过 logfather)

MIT 许可证

15KB
80

简化奇奇

移除 Rust 中的烦人模板代码,并简化 StringHashMap 的创建。

功能

  • 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 文件。

贡献

._. 为什么你会这样做?

无运行时依赖